Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1644to1648
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
Inhaltsverzeichnis

Zellen in Array kopieren

Zellen in Array kopieren
11.09.2018 16:31:55
ingo
Hallo, ich habe bislang fast nur mit matlab programmiert und jetzt mit VBA meine Probleme:
Das Programm soll folgendes tun:
- Programm wird per Button gestartet
- Zellen aus Excel in einem Array speichern
- Aus einer Zelle, in der verschiedene Zeichen sind, nur die Zahlen auslesen und davon den Maximalwert suchen.
- Den Array weiter verarbeiten und Daten abschließend wieder in die Excel kopieren
Beim Kopieren von Zellen in den Array bekomme ich den "Laufzeitfehler 13 Typen unverträglich".
Könnt ihr mir weiterhelfen?

Sub ISIR_Maße_auslesen()
Dim Masse() As Variant
Dim Feld(100) As Double
Dim m As Integer, l As Integer, j As Integer, n As Integer, w As Integer
m = 1
l = 1
n = 1
w = 1
Do While Range("A" & l)  "ISIR"
l = l + 1
Loop
a = 1
Do While Range("A" & a)  "DRW"
a = a + 1
Loop
'alle relevanten Maße (ungleich 0) in Array schreiben
For m = a + 2 To Range("A4").End(xlDown).Row
If Range("F" & m)  0 Then
Masse(n, Range(Cells(m, 1), Cells(m, 6))) = Range(Cells(m, 1), Cells(m, 6)).Value
Masse(n, 7) = Range("Z" & m).Value
'Aus Zelle 7 Zahlen herausfiltern
zelleninhalt = Masse(n, 7)
start = -1
For i = 1 To Len(zelleninhalt)
zahl = ""
If IsNumeric(Mid(zelleninhalt, i, 1)) = True Then
w = 1
Do While IsNumeric(Mid(zelleninhalt, i, 1)) = True Or Mid(zelleninhalt, i, 1) = "."  _
_
_
Or Mid(zelleninhalt, i, 1) = ","
zahl = zahl & Mid(zelleninhalt, i, 1)
i = i + 1
Loop
Feld(w) = zahl
w = w + 1
End If
Next i
Masse(n, 8) = WorksheetFunction.Max(WorksheetFunction.Index(Feld, 0, 1))          'Maximalwert   _
_
_
aus Zelle 7 ermitteln
Range("A" & l + 2) = Masse(n, 1)
Range("B" & l + 2) = Masse(n, 2)
Range("C" & l + 2) = Masse(n, 7)
l = l + 1
n = n + 1
End If
Next m
End Sub

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen in Array kopieren
11.09.2018 17:54:57
Matthias
Moin!
ICh glaube da sind noch ein paar mehr Baustellen in deinem Code. Zuerst solltest du die Variablen nicht als integer sondern long deklarieren. Integer geht nur bis rund 32800. Falls du da mal bis zu einer tieferen Zeile gehen musst (Ex hat da ein paar mehr) kommt ein Fehler.
Dann hat dein Array Masse noch keine Dimensionen. Du hast es sozusagen nur als Verweis auf ein Array angelegt. Du müsstest dem Code da noch irgendwann sagen, welche Dimensionen es haben soll.
Falls du das gemacht hast, kannst du dann mittels Variablen darauf zugreifen. DAbei solltest du für Zeile und Spalte eine Zahl eingeben oder eine Variabel, die eine Zahl beinhaltet. Bei dir steht dann mal das hier:
Masse(n, Range(Cells(m, 1), Cells(m, 6)))
Da hast du für die Spalte eine 6zeilige Range. Was wolltest du machen? Sollten da gleich 6 Werte mit einmal eingelesen werden? Wenn ja, geht das so nicht. Da müsstest du eine Schleife durch die Zellen machen und jeden WErt einzeln einlesen. Man könntet auch die 6 Zellen im Block zuweisen aber dann kannst du nicht ohne weiteres noch einen 7 oder 8ten Wert einfügen (ggf. kannst du natürlich geich 8 Stellen zuweisen und die anderen dann überschreiben)
Schau bzgl. der Arrays auch mal hier:
https://www.online-excel.de/excel/singsel_vba.php?f=152
VG
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige