Excel 2016: Die PasteSpecial-Methode des Range-Objektes konnte nicht ausgeführt werden

  • Excel

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Zoe4711.

    Excel 2016: Die PasteSpecial-Methode des Range-Objektes konnte nicht ausgeführt werden

    Hallo,

    aus dem Homeoffice heraus suche ich den Draht nach draußen und euren Rat.

    Auf computer@office treten bei einem Makro zufällig folgende Laufzeitfehler auf, auf computer@HomeOffice nicht:

    computer@office: Nachdem ich einige Male, mal mehr mal weniger häufig, auf Debuggen geklickt und mit F5 die Fortsetzung des Makros angestoßen habe, läuft das Makro schlussendlich doch ohne weitere Unterbrechungen durch.

    Quellcode

    1. xRg.PasteSpecial '** Laufzeitfehler '1004': Die PasteSpecial-Methode des Range-Objektes konnte nicht ausgeführt werden.


    Quellcode

    1. xRg.PasteSpecial '** Laufzeitfehler '1004': Microsoft Excel kann die Daten nicht einfügen.


    Quellcode

    1. Sub extract_userpicture_from_comments
    2. Dim rngZelle As Range
    3. Dim xRg As Range
    4. Dim visBool As Boolean
    5. Dim cmtTxt As String
    6. Dim i As Integer
    7. If ActiveSheet.Comments.Count = 0 Then
    8. MsgBox "No comments in entire sheet"
    9. Exit Sub
    10. End If
    11. Application.CutCopyMode = False
    12. Application.ScreenUpdating = False
    13. Application.Calculation = xlCalculationManual
    14. For Each rngZelle In Selection.Cells
    15. With rngZelle
    16. rngZelle.Select
    17. If .Comment Is Nothing Then
    18. GoTo LabelA
    19. Else
    20. With .Comment
    21. cmtTxt = .Text
    22. .Text Text:="" & Chr(10) & ""
    23. visBool = .Visible
    24. .Visible = True
    25. .Shape.CopyPicture _
    26. Appearance:=xlScreen, Format:=xlPicture
    27. Set xRg = .Parent.Offset(0, 1)
    28. xRg.PasteSpecial
    29. Selection.ShapeRange.LockAspectRatio = msoTrue
    30. Selection.Height = xRg.Height
    31. .Visible = visBool
    32. .Text Text:=cmtTxt
    33. .Shape.Fill.Solid
    34. .Shape.TextFrame.AutoSize = True
    35. i = i + 1
    36. Debug.Print i; rngZelle.Address
    37. End With
    38. End If
    39. End With
    40. LabelA:
    41. Application.CutCopyMode = False
    42. Next rngZelle
    43. Application.CutCopyMode = False
    44. Application.Calculation = xlCalculationAutomatic
    45. Application.ScreenUpdating = True
    46. End Sub
    Der Code animiert nicht zum Anschauen.
    Da sind so viele Stilfehler drin, dass man sich den Code gar nicht genau anschauen mag.
    Aber, kompiliert das überhaupt:

    Zoe4711 schrieb:

    .Text Text:="" & Chr(10) & ""
    ...
    .Text Text:=cmtTxt

    Ausserdem ist es immer gefährlich mit Selection zu arbeiten, weil diese sich dynamisch verändern kann.

    Ich versuche mal einen vorsichtig veränderten Ansatz:

    Visual Basic-Quellcode

    1. Set Rng = Selection
    2. For Each rngZelle In Rng
    3. If Not rngZelle.Comment Is Nothing Then
    4. With rngZelle.Comment
    5. cmtTxt = .Text
    6. .Text = Chr(10)
    7. visBool = .Visible
    8. .Visible = True
    9. .Shape.CopyPicture
    10. .Parent.Offset(0, 1).PasteSpecial
    11. rngZelle.ShapeRange.LockAspectRatio = msoTrue
    12. rngZelle.Height = xRg.Height
    13. .Visible = visBool
    14. .Text = cmtTxt
    15. .Shape.Fill.Solid
    16. .Shape.TextFrame.AutoSize = True
    17. End With
    18. End If
    19. Application.CutCopyMode = False
    20. Next rngZelle
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    petaod schrieb:

    Der Code animiert nicht zum Anschauen.
    Da sind so viele Stilfehler drin, dass man sich den Code gar nicht genau anschauen mag.

    Aber, kompiliert das überhaupt:

    .Text Text:="" & Chr(10) & ""
    ...
    .Text Text:=cmtTxt


    Das kompiliert. Das Makro funktioniert wie beschrieben auf computer@HomeOffice einwandfrei.


    petaod schrieb:

    Set Rng = Selection


    Fehler beim Kompilieren:
    Variable nicht definiert

    Korrigiert mit:

    Quellcode

    1. Dim rng as Range


    Danach: Fehler beim Kompilieren

    petaod schrieb:

    .Text = Chr(10)


    Fehler beim Kompilieren:
    Zuweisung zu einer Konstanten nicht zulässig

    Korrigiert mit:

    Quellcode

    1. .Text Text:=Chr(10)


    Danach: Fehler beim Kompilieren

    petaod schrieb:

    .Text = cmtTxt


    Fehler beim Kompilieren:
    Zuweisung zu einer Konstanten nicht zulässig

    Korrigiert mit:

    Quellcode

    1. .Text Text:=cmtTxt


    Danach: Laufzeitfehler

    petaod schrieb:

    rngZelle.ShapeRange.LockAspectRatio = msoTrue


    Laufzeitfehler '438': Objekt unterstützt diese Eigenschaft oder Methode nicht

    Fazit: Jetzt höre ich damit auf. Verschlimmbesserung trifft es gut.

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Zoe4711“ () aus folgendem Grund: Kleine redaktionelle Änderungen.

    Makroausführung beruhigt mit: DoEvents

    Jetzt funktioniert es fehlerfrei, wenn
    • der Makrostart bei geöffnetem Modul nicht über die Menüleiste "Ausführen" --> "Sub/UserForm ausführen" des Entwicklertools Microsoft Visual Basic for Application, sondern bei geöffnetem Modul mittels der Taste F5 ausgelöst wird oder
    • der Makrostart über Reiter Ansicht --> Button Makros --> Makros anzeigen --> {Makroname auswählen} ausgelöst wird.

    Visual Basic-Quellcode

    1. Sub insert_userpicture_in_comments_final()
    2. '** Dimensionierung der Variablen
    3. Dim rngZelle As Range
    4. Dim strFilename As Variant
    5. Dim strFilter As String
    6. Dim ScaleValue As Single
    7. Dim ScaleValue2 As Single
    8. Dim objPic As IPictureDisp
    9. Dim Source As String
    10. Dim i As Integer
    11. If ActiveSheet.Comments.Count = 0 Then
    12. MsgBox "No comments in entire sheet"
    13. Exit Sub
    14. End If
    15. 'Dateiauswahl filtern
    16. strFilter = "JPG Files (*.jpg), *.jpg" _
    17. & ", GIF Files (*.gif), *.gif" _
    18. & ", Bitmaps (*.bmp), *.bmp" _
    19. & ", WMF Files (*.wmf), *.wmf"
    20. ' Dialogfenster zur Auswahl eines Bildes öffnen
    21. strFilename = Application.GetOpenFilename(strFilter)
    22. ' Wenn kein Bild ausgewählt wurde, Prozedur beenden
    23. If strFilename = False Then GoTo LabelA
    24. Source = (CStr(strFilename))
    25. ' Set objPic = LoadPicture(Bild)
    26. Set objPic = LoadPicture(Source)
    27. DoEvents
    28. With objPic
    29. ScaleValue = .Width / .Height
    30. End With
    31. If MsgBox(ScaleValue, vbOKCancel) = vbCancel Then GoTo LabelA
    32. Application.CutCopyMode = False
    33. DoEvents
    34. Application.ScreenUpdating = False
    35. Application.Calculation = xlCalculationManual
    36. '** Alle markierten rngZellen durchlaufen
    37. For Each rngZelle In Selection.Cells
    38. With rngZelle
    39. If Not .Comment Is Nothing Then
    40. 'Insert The Image and Resize
    41. With .Comment.Shape
    42. .Shadow.Visible = msoFalse
    43. .LockAspectRatio = msoFalse
    44. .Width = 150
    45. ' .Width = ScaleValue * .Height
    46. .Height = .Width / ScaleValue
    47. .Fill.UserPicture strFilename
    48. DoEvents
    49. .LockAspectRatio = msoTrue
    50. ScaleValue2 = .Width / .Height
    51. i = i + 1
    52. Debug.Print i; rngZelle.Address; ScaleValue; ScaleValue2
    53. End With
    54. End If
    55. End With
    56. Application.CutCopyMode = False
    57. DoEvents
    58. Next rngZelle
    59. LabelA:
    60. Application.Calculation = xlCalculationAutomatic
    61. Application.ScreenUpdating = True
    62. Application.CutCopyMode = False
    63. DoEvents
    64. End Sub


    Visual Basic-Quellcode

    1. Sub extract_userpicture_from_comments_final()
    2. '** Dimensionierung der Variablen
    3. Dim rngZelle As Range
    4. Dim xRg As Range
    5. Dim visBool As Boolean
    6. Dim cmtTxt As String
    7. Dim i As Integer
    8. If ActiveSheet.Comments.Count = 0 Then
    9. MsgBox "No comments in entire sheet"
    10. Exit Sub
    11. End If
    12. Application.CutCopyMode = False
    13. DoEvents
    14. Application.ScreenUpdating = False
    15. Application.Calculation = xlCalculationManual
    16. '** Alle markierten rngZellen durchlaufen
    17. For Each rngZelle In Selection.Cells
    18. With rngZelle
    19. rngZelle.Select
    20. If .Comment Is Nothing Then
    21. GoTo LabelA
    22. Else
    23. 'Extract The Image
    24. With .Comment
    25. cmtTxt = .Text
    26. .Text Text:="" & Chr(10) & ""
    27. visBool = .Visible
    28. .Visible = True
    29. .Shape.CopyPicture _
    30. Appearance:=xlScreen, Format:=xlPicture
    31. DoEvents
    32. Set xRg = .Parent.Offset(0, 20)
    33. xRg.Select
    34. ' xRg.PasteSpecial
    35. ActiveSheet.PasteSpecial
    36. DoEvents
    37. Selection.ShapeRange.LockAspectRatio = msoTrue
    38. ' Selection.Width = xRg.Width
    39. Selection.Height = xRg.Height
    40. .Visible = visBool
    41. .Text Text:=cmtTxt
    42. .Shape.Fill.Solid
    43. DoEvents
    44. .Shape.TextFrame.AutoSize = True
    45. i = i + 1
    46. Debug.Print i; rngZelle.Address
    47. End With
    48. End If
    49. End With
    50. LabelA:
    51. Application.CutCopyMode = False
    52. DoEvents
    53. Next rngZelle
    54. Application.Calculation = xlCalculationAutomatic
    55. Application.ScreenUpdating = True
    56. Application.CutCopyMode = False
    57. DoEvents
    58. End Sub
    Dateien
    • Erdbeere-25.bmp

      (944,84 kB, 58 mal heruntergeladen, zuletzt: )
    • Orange-50.bmp

      (349,49 kB, 67 mal heruntergeladen, zuletzt: )

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Zoe4711“ () aus folgendem Grund: [code][/code] durch [vb][/vb] ersetzt

    Verbesserung

    Wegen der Laufzeitfehler @office habe ich folgende Änderung vorgenommen: Wird das Bild nicht in die Zelle eingefügt, dann wird zwar der Fehler ignoriert, aber das Einfügen des Bildes solange wiederholt bis es geklappt hat.

    Visual Basic-Quellcode

    1. On Error Resume Next


    Visual Basic-Quellcode

    1. LabelB:
    2. i = i + 1
    3. If Err = 1004 Then j = j + 1
    4. Debug.Print i; rngZelle.Address; rngZelle.Comment.Parent.Offset(0, 20).Address; Err; j
    5. On Error GoTo 0
    6. On Error Resume Next


    Visual Basic-Quellcode

    1. If Err = 1004 Then GoTo LabelB


    Und komplett:

    Visual Basic-Quellcode

    1. Sub extract_userpicture_from_comments_final_2()
    2. '** Dimensionierung der Variablen
    3. Dim rngZelle As Range
    4. Dim xRg As Range
    5. Dim visBool As Boolean
    6. Dim cmtTxt As String
    7. Dim i As Integer
    8. Dim j As Integer
    9. i = 0
    10. j = 0
    11. If ActiveSheet.Comments.Count = 0 Then
    12. MsgBox "No comments in entire sheet"
    13. Exit Sub
    14. End If
    15. Application.CutCopyMode = False
    16. DoEvents
    17. Application.ScreenUpdating = False
    18. Application.Calculation = xlCalculationManual
    19. '** Alle markierten rngZellen durchlaufen
    20. For Each rngZelle In Selection.Cells
    21. With rngZelle
    22. rngZelle.Select
    23. If .Comment Is Nothing Then
    24. GoTo LabelA
    25. Else
    26. 'Extract The Image
    27. With .Comment
    28. On Error Resume Next
    29. cmtTxt = .Text
    30. .Text Text:="" & Chr(10) & ""
    31. visBool = .Visible
    32. .Visible = True
    33. .Shape.CopyPicture _
    34. Appearance:=xlScreen, Format:=xlPicture
    35. DoEvents
    36. Set xRg = .Parent.Offset(0, 20)
    37. xRg.Select
    38. LabelB:
    39. i = i + 1
    40. If Err = 1004 Then j = j + 1
    41. Debug.Print i; rngZelle.Address; rngZelle.Comment.Parent.Offset(0, 20).Address; Err; j
    42. On Error GoTo 0
    43. On Error Resume Next
    44. ' xRg.PasteSpecial
    45. ActiveSheet.PasteSpecial Format:="Bild (Erweiterte Metadatei)", Link:=False, DisplayAsIcon:=False
    46. DoEvents
    47. If Err = 1004 Then GoTo LabelB
    48. Selection.ShapeRange.LockAspectRatio = msoTrue
    49. ' Selection.Width = xRg.Width
    50. Selection.Height = xRg.Height
    51. .Visible = visBool
    52. .Text Text:=cmtTxt
    53. .Shape.Fill.Solid
    54. DoEvents
    55. .Shape.TextFrame.AutoSize = True
    56. End With
    57. End If
    58. End With
    59. LabelA:
    60. Application.CutCopyMode = False
    61. DoEvents
    62. Next rngZelle
    63. Application.Calculation = xlCalculationAutomatic
    64. Application.ScreenUpdating = True
    65. Application.CutCopyMode = False
    66. DoEvents
    67. End Sub


    Visual Basic-Quellcode

    1. Sub insert_userpicture_in_comments_final()
    2. '** Dimensionierung der Variablen
    3. Dim rngZelle As Range
    4. Dim strFilename As Variant
    5. Dim strFilter As String
    6. Dim ScaleValue As Single
    7. Dim ScaleValue2 As Single
    8. Dim objPic As IPictureDisp
    9. Dim Source As String
    10. Dim i As Integer
    11. If ActiveSheet.Comments.Count = 0 Then
    12. MsgBox "No comments in entire sheet"
    13. Exit Sub
    14. End If
    15. 'Dateiauswahl filtern
    16. strFilter = "JPG Files (*.jpg), *.jpg" _
    17. & ", GIF Files (*.gif), *.gif" _
    18. & ", Bitmaps (*.bmp), *.bmp" _
    19. & ", WMF Files (*.wmf), *.wmf"
    20. ' Dialogfenster zur Auswahl eines Bildes öffnen
    21. strFilename = Application.GetOpenFilename(strFilter)
    22. ' Wenn kein Bild ausgewählt wurde, Prozedur beenden
    23. If strFilename = False Then GoTo LabelA
    24. Source = (CStr(strFilename))
    25. ' Set objPic = LoadPicture(Bild)
    26. Set objPic = LoadPicture(Source)
    27. DoEvents
    28. With objPic
    29. ScaleValue = .Width / .Height
    30. End With
    31. If MsgBox(ScaleValue, vbOKCancel) = vbCancel Then GoTo LabelA
    32. Application.CutCopyMode = False
    33. DoEvents
    34. Application.ScreenUpdating = False
    35. Application.Calculation = xlCalculationManual
    36. '** Alle markierten rngZellen durchlaufen
    37. For Each rngZelle In Selection.Cells
    38. With rngZelle
    39. If Not .Comment Is Nothing Then
    40. 'Insert The Image and Resize
    41. With .Comment.Shape
    42. .Shadow.Visible = msoFalse
    43. .LockAspectRatio = msoFalse
    44. .Width = 150
    45. ' .Width = ScaleValue * .Height
    46. .Height = .Width / ScaleValue
    47. .Fill.UserPicture strFilename
    48. DoEvents
    49. .LockAspectRatio = msoTrue
    50. ScaleValue2 = .Width / .Height
    51. i = i + 1
    52. Debug.Print i; rngZelle.Address; ScaleValue; ScaleValue2
    53. End With
    54. End If
    55. End With
    56. Application.CutCopyMode = False
    57. DoEvents
    58. Next rngZelle
    59. LabelA:
    60. Application.Calculation = xlCalculationAutomatic
    61. Application.ScreenUpdating = True
    62. Application.CutCopyMode = False
    63. DoEvents
    64. End Sub

    Verbesserung: Makroausführung beruhigt mit: sleep

    Hallo,

    Laufzeitfehler '1004': Die PasteSpecial-Methode des Range-Objektes konnte nicht ausgeführt werden.


    Laufzeitfehler '1004': Microsoft Excel kann die Daten nicht einfügen.


    Diese Fehler werden mutmaßlich dadurch verursacht, dass der Zugriff auf das Clipboard durch ein anderes Programm gestört wird.

    Unter answers.microsoft.com/en-us/ms…32-46f2-99f1-e4efc3cdef9f (Microsoft Excel cannot paste the data) wurde über dieses Phänomen diskutiert:

    Verbundene Zellen:
    Does your data have merged cells? It could be one of the possibilities. It may not be possible to paste data from a merged cell range into a non-merged cells range. Select the data, click on Merge and Center to toggle it off and try the copy the data again.


    Skype with its click to call functions
    Hello everybody!

    I got this problem today... besides, all MS Office 365 programs failed to provide paste options.

    After reinstalling the Office 365, uninstalling Skype with its click to call functions (in vain) i discovered that clipboard and copy & paste functions were stolen by Pushbullet software. After disabling "Universal copy & paste" function in settings of Pushbullet, copy and paste functions recovered in Excel and other MS Office suite applications.

    Hope this experience works with you. You may have other software (or add-on) that monitors clipboard and overrides MS Office functionality.


    Clipboard
    Simply shutting down my clipboard manager for the time I use Excel has 100% eliminated this error.


    Bedngte Formatierung
    This worked for me

    In Excel 2007/2010/2013:
    1. On the Home Ribbon > Conditional Formatting
    2. Clear rules from entire worksheet or cells
    3. Follow above steps for each worksheet in the file


    Mit folgender Verbesserung sind nun auch die Run-time error '1004' verschwunden:

    Visual Basic-Quellcode

    1. Option Explicit
    2. Declare Sub Sleep Lib "kernel32" (ByVal dwmilliseconds As Long)


    Visual Basic-Quellcode

    1. Sleep (50)


    Und komplett:

    Visual Basic-Quellcode

    1. Option Explicit
    2. Declare Sub Sleep Lib "kernel32" (ByVal dwmilliseconds As Long)
    3. Sub extract_userpicture_from_comments_final_3()
    4. '** Dimensionierung der Variablen
    5. Dim rngZelle As Range
    6. Dim xRg As Range
    7. Dim visBool As Boolean
    8. Dim cmtTxt As String
    9. Dim i As Integer
    10. Dim j As Integer
    11. i = 0
    12. j = 0
    13. If ActiveSheet.Comments.Count = 0 Then
    14. MsgBox "No comments in entire sheet"
    15. Exit Sub
    16. End If
    17. Application.CutCopyMode = False
    18. DoEvents
    19. Application.ScreenUpdating = False
    20. Application.Calculation = xlCalculationManual
    21. '** Alle markierten rngZellen durchlaufen
    22. For Each rngZelle In Selection.Cells
    23. With rngZelle
    24. rngZelle.Select
    25. If .Comment Is Nothing Then
    26. GoTo LabelA
    27. Else
    28. 'Extract The Image
    29. With .Comment
    30. On Error Resume Next
    31. cmtTxt = .Text
    32. .Text Text:="" & Chr(10) & ""
    33. visBool = .Visible
    34. .Visible = True
    35. .Shape.CopyPicture _
    36. Appearance:=xlScreen, Format:=xlPicture
    37. DoEvents
    38. Sleep (50)
    39. Set xRg = .Parent.Offset(0, 20)
    40. xRg.Select
    41. LabelB:
    42. i = i + 1
    43. If Err = 1004 Then j = j + 1
    44. Debug.Print i; rngZelle.Address; rngZelle.Comment.Parent.Offset(0, 20).Address; Err; j
    45. On Error GoTo 0
    46. On Error Resume Next
    47. ' xRg.PasteSpecial
    48. ActiveSheet.PasteSpecial Format:="Bild (Erweiterte Metadatei)", Link:=False, DisplayAsIcon:=False
    49. DoEvents
    50. If Err = 1004 Then GoTo LabelB
    51. Selection.ShapeRange.LockAspectRatio = msoTrue
    52. ' Selection.Width = xRg.Width
    53. Selection.Height = xRg.Height
    54. .Visible = visBool
    55. .Text Text:=cmtTxt
    56. .Shape.Fill.Solid
    57. DoEvents
    58. .Shape.TextFrame.AutoSize = True
    59. End With
    60. End If
    61. End With
    62. LabelA:
    63. Application.CutCopyMode = False
    64. DoEvents
    65. Next rngZelle
    66. Application.Calculation = xlCalculationAutomatic
    67. Application.ScreenUpdating = True
    68. Application.CutCopyMode = False
    69. DoEvents
    70. End Sub


    Visual Basic-Quellcode

    1. Sub insert_userpicture_in_comments_final()
    2. '** Dimensionierung der Variablen
    3. Dim rngZelle As Range
    4. Dim strFilename As Variant
    5. Dim strFilter As String
    6. Dim ScaleValue As Single
    7. Dim ScaleValue2 As Single
    8. Dim objPic As IPictureDisp
    9. Dim Source As String
    10. Dim i As Integer
    11. If ActiveSheet.Comments.Count = 0 Then
    12. MsgBox "No comments in entire sheet"
    13. Exit Sub
    14. End If
    15. 'Dateiauswahl filtern
    16. strFilter = "JPG Files (*.jpg), *.jpg" _
    17. & ", GIF Files (*.gif), *.gif" _
    18. & ", Bitmaps (*.bmp), *.bmp" _
    19. & ", WMF Files (*.wmf), *.wmf"
    20. ' Dialogfenster zur Auswahl eines Bildes öffnen
    21. strFilename = Application.GetOpenFilename(strFilter)
    22. ' Wenn kein Bild ausgewählt wurde, Prozedur beenden
    23. If strFilename = False Then GoTo LabelA
    24. Source = (CStr(strFilename))
    25. ' Set objPic = LoadPicture(Bild)
    26. Set objPic = LoadPicture(Source)
    27. DoEvents
    28. With objPic
    29. ScaleValue = .Width / .Height
    30. End With
    31. If MsgBox(ScaleValue, vbOKCancel) = vbCancel Then GoTo LabelA
    32. Application.CutCopyMode = False
    33. DoEvents
    34. Application.ScreenUpdating = False
    35. Application.Calculation = xlCalculationManual
    36. '** Alle markierten rngZellen durchlaufen
    37. For Each rngZelle In Selection.Cells
    38. With rngZelle
    39. If Not .Comment Is Nothing Then
    40. 'Insert The Image and Resize
    41. With .Comment.Shape
    42. .Shadow.Visible = msoFalse
    43. .LockAspectRatio = msoFalse
    44. .Width = 150
    45. ' .Width = ScaleValue * .Height
    46. .Height = .Width / ScaleValue
    47. .Fill.UserPicture strFilename
    48. DoEvents
    49. .LockAspectRatio = msoTrue
    50. ScaleValue2 = .Width / .Height
    51. i = i + 1
    52. Debug.Print i; rngZelle.Address; ScaleValue; ScaleValue2
    53. End With
    54. End If
    55. End With
    56. Application.CutCopyMode = False
    57. DoEvents
    58. Next rngZelle
    59. LabelA:
    60. Application.Calculation = xlCalculationAutomatic
    61. Application.ScreenUpdating = True
    62. Application.CutCopyMode = False
    63. DoEvents
    64. End Sub