Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
712to716
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
712to716
712to716
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Syntax bei Array

Syntax bei Array
29.12.2005 11:26:03
Torsten
Hallo beisammen,
vor einer Woche hat mir Luschi bei folgendem Code ausgeholfen:

Private Sub cmb_TRADE_Click()
Dim i As Integer
Dim j As Integer
Dim myArr As Integer
Dim wkb As Workbook
Dim wkbUpload As Workbook  'Dateien, aus welcher die Daten heraus kopiert werden sollen
Dim wksUpload As Worksheet 'WS, aus dem die Daten heraus kopiert werden sollen (Upload")
Dim wkbZiel As Workbook    'Datei, in welche die Daten eingefügt werden sollen (COPA_IMSO)
Dim wksDaten As Worksheet  'WS, in das die Daten eingefügt werden sollen
Dim intNächsteZeile As Integer
Dim intAnzahlZeilen As Integer
Application.ScreenUpdating = False
Application.StatusBar = "Der Vorgang wird einen Moment dauern. Bitte Geduld!"
Set wkbZiel = Workbooks.Open(strPath & "BW_TRADE", _
password:="", WriteResPassword:="")  'öffnet Zieldatei
Set wksDaten = wkbZiel.Sheets("Daten")
intNächsteZeile = wksDaten.UsedRange.Rows.Count + 1  'ermittelt nächste zu nutzende Zeile
Application.DisplayAlerts = False
myArr = Array("NL*", "IW*", "SER*", "OEM*")
For i = 0 To UBound(myArr)
With Application.FileSearch
.NewSearch
.LookIn = "E:\Extern\Budget\Budget 2006\Turnover_ADMIN\BW_Upload\"
.SearchSubFolders = False
.Filename = myArr(i)
If .Execute() > 0 Then
For j = 1 To .FoundFiles.Count
Workbooks.Open Filename:=.FoundFiles(j)
Set wkb = Activeworkbook
Set wksUpload = wkb.Sheets("Upload")
intAnzahlZeilen = wksUpload.UsedRange.Rows.Count - 1
wksUpload.Range(wksUpload.Cells(4, 1), wksUpload.Cells(intAnzahlZeilen, 108)).Copy
wksDaten.Range("$A$" & intNächsteZeile).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
wkb.Close savechanges:=False
intNächsteZeile = intNächsteZeile + intAnzahlZeilen - 3
wkbZiel.Save
Next j
End If
End With
Next i
wkbZiel.Close
Application.DisplayAlerts = True
Application.StatusBar = False
Application.ScreenUpdating = True
MsgBox "Die Datei BW_TRADE wurde aktualisiert"
End Sub

Nachdem ich das nun in meine Datei eingebaut habe, bricht Excel den Code leider ab mit der Meldung "Fehler beim Kompilieren; Erwartet: Datenfeld" und markiert
"UBound(myArr)". Könnt Ihr mir weiterhelfen?
Vielen Dank im voraus und
Gruß
Torsten

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Syntax bei Array
29.12.2005 11:29:05
Reinhard
Hi Torsten,
streich das as integer bei Dim myarr
Gruß
Reinhard
ps:Das Forum lebt auch von Rückmeldungen.
AW: erledigt - mT
29.12.2005 11:38:03
Torsten
Hallo Reinhard,
vielen Dank für die schnelle Antwort.
Ich weiß zwar nicht warum das Weglassen des "as Integer" zum Erfolg führt, denn letztlich ist ein Array doch auch nur eine Variable, aber es funktioniert.
Nochmals schönen Dank und einen guten Start ins neue Jahr.
Gruß
Torsten
AW: erledigt - mT
29.12.2005 16:43:47
Hugo
Hallo,
Dim myArray As Integer
dimensioniert eine Integervariable und keine Arrayvariable.
Ohne "As Integer" nimmt die Variable den Datentyp Variant an - spätestens in dem Moment, wo du ihr den Array übergibst. Und "Variant" wird für ein Datenfeld auch benötigt.
Hugo
Anzeige
AW: erledigt - Aha, Danke für Info - Gruß Torsten
29.12.2005 16:48:04
Torsten

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige