ich habe hier ein Problem, das mich verzweifeln lässt.
Ich sollte in einer recht umfangreichen Excel-Applikation
herausfinden, warum der "Datenexport" nicht klappt. Ich habe
das Problem mittlerweile eingekreist - es liegt wahrscheinlich
(mal wieder) an der Zwischenablage.
Kurze Beschreibung des Problems:
In einer Excel-Tabelle stehen in einer Spalte untereinander
die Namen der Tabellenblätter, die in eine neue Datei kopiert
werden sollen. Es klappt alles wunderbar - solange das nicht
mehr als 21 Einträge sind. Wird die Schleife ein 22. Mal
durchlaufen, bricht Excel mit der bekannten Fehlermeldung 1004
und dem Hinweis, es könne die Copy-Methode des Worksheet-Objektes
nicht ausführen, ab.
Hier der entscheidende Code:
---8 Private Declare
Function OpenClipboard Lib "user32" _
(ByVal hwnd As Long) _
As Long
Private Declare
Function EmptyClipboard Lib "user32" () _
As Long
Private Declare
Function CloseClipboard Lib "user32" () _
As Long
Sub ClearClipboard
Dim objData As DataObject
Set objData = New DataObject
objData.SetText ("")
objData.PutInClipboard
If OpenClipboard(0&) <> 0 Then
Call EmptyClipboard
Call CloseClipboard
End If
End Sub
'
' [...]
'
Sub CopySheets()
Range("Start_TableList").Select
intCounter = 0
Do While ActiveCell.Value <> ""
intCounter = intCounter + 1
strSheetName = ActiveCell.Value
Call ClearClipboard
Application.CutCopyMode = False
Sheets(strSheetName).Copy After:=Workbooks(strOtherWorkbook).Sheets(1)
Call ClearClipboard
Application.CutCopyMode = False
Selection.Offset(1, 0).Select
Loop
End Sub
'
' [...]
'
--->8---
Was ich auch ausprobiere - ich schaffe es nicht, mehr als 21 Worksheets
auf diese Weise zu kopieren. Und so wie es scheint, wird auch die zwischen-
ablage nicht ordentlich geleert - egal auch welche Weise ich das versuche.
Weiß irgendjemand Rat?
Ich würde mich über einen Haufen Antworten wahnsinnig freuen!
Vielen Dank im voraus!
Björn