Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
732to736
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
732to736
732to736
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Matrix-Berechunng in VBA

Matrix-Berechunng in VBA
Daniel
Hallo,
folgendes Problem:
ich habe mehrere 2-dimensionale Felder gleicher Grösse
die Ersten beiden Enthalten die Daten, in den anderen sollen die Berechnungsergebnisse gespeichert werden.
In etwa so:
Feld_1(1,1) x Feld_2(1,1) Ergbenis in Feld_3(1,1) speichern
Feld_1(1,2) x Feld_2(1,2) Ergbenis in Feld_3(1,2) speichern
Feld_1(1,3) x Feld_2(1,3) Ergbenis in Feld_3(1,3) speichern
...
und so weiter, die ganze Tabelle durch.
ist soetwas nur mit einer geschachtetln Schleife möglich oder gibt es ein andere Möglichkeit sowas zu berechnen?
Würde es dann auch direkt mit Excel-Tabellen (also Range-Objekten) funktionieren oder muß ich die Tabellenwerte erst in Felder kopieren?
Gruß, Daniel Eisert

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Matrix-Berechunng in VBA
17.02.2006 22:40:22
Lars
Hi,
in Arrays ist schneller als in Zellen. Was du genau willst habe ich aber nicht verstanden.
mfg Lars
AW: Matrix-Berechunng in VBA
17.02.2006 23:02:40
daniel
Hallo,
ich möchte die ArrayFelder von Array1 mit den ArrayFeldern Array2 mltiplizieren und das Ergebnis in einem dritten Array ablegen, und zwar wert für wert
also
Ergebnis(1) = ErstesArray(2) * ZweitesArray(1)
Ergebnis(2) = ErstesArray(2) * ZweitesArray(2)
...
Ergebnis(n) = ErstesArray(n) * ZweitsArray(n)
nach meinem bisherigen Kenntnisstand würde ich es mit einer For..Next Schleife machen,
For i = 1 to n
Ergebnis(i) = ErstesArray(i) * ZweitesArray(i)
next n
aber vielleicht gibt es ja eine eleganterer Lösung, das direkt zu progammieren ohne Schleife
Ich hoffe mal, es ist etwas klarer geworden
Gruß, Daniel
Anzeige
AW: Matrix-Berechunng in VBA
17.02.2006 23:07:43
Nepumuk
Hallo Daniel,
um eine Schleife wirst du nicht herum kommen. Aber selbst wenn du 10.000 Elemente im Array hast, läuft das ganze in maximal 5 Millisekunden durch. Arrays sind wahnsinnig schnell.
Gruß
Nepumuk

Danke: Matrix-Berechunng in VBA
17.02.2006 23:30:02
daniel
Hallo,
wenns so schnell geht, kann ichs ja mal mit der Schleife probieren, ist dann ja kein Problem.
Bisher berechne ich die Werte direkt in Excel über Formeln, die ich reinkopiere, ist aber auch nicht sonderlich schnell.
Gruß, Daniel
Doch nochmal ne Frage
17.02.2006 23:47:26
daniel
Hallo,
nochmal ne Frage,
wenn ich das Array habe, kann ich ja das Ergbnis einfach in die Exceltabelle kopieren mit:
Range("a1:x:100") = Feld1
aber wie bekomme ich die Daten zur Berechnung aus der Tabelle ins Array rein?
Feld1 = range("a1:x100")
gibt ne Fehlermeldung wg. Zuweisung an Feld nicht möglich.
Geht das auch wieder nur mit ner Schleife?
Gruß, Daniel
Anzeige
AW: Doch nochmal ne Frage
17.02.2006 23:50:58
Nepumuk
Hallo Daniel,
so:
Public Sub test()
    Dim Feld1 As Variant
    Feld1 = Range("a1:x100").Value
End Sub

Gruß
Nepumuk

Anzeige
Und nochmal Danke
17.02.2006 23:57:45
Daniel
ah jetz ja einfach nicht als Feld deklarieren und dann gehts.
Supi, Vielen Dank
Daniel
AW: Matrix-Berechunng in VBA
17.02.2006 23:03:12
{Boris}
Hi Daniel,
wo ist das Problem?
Option Explicit

Sub test()
Dim feld1(3, 3)
Dim feld2(3, 3)
Dim feld3(3, 3)
Dim by As Byte, by2 As Byte
For by = 1 To 3
For by2 = 1 To 3
feld1(by, by2) = by + by2
feld2(by, by2) = (by + by2) * 2
feld3(by, by2) = feld1(by, by2) * feld2(by, by2)
Next by2
Next by
MsgBox feld3(2, 3)
End Sub

Grüße Boris
Danke
17.02.2006 23:33:22
Daniel
Hallo,
das mit der Schleife ist mir schon klar, ich hatte gehofft, es gäbe was eleganteres
Gruß, Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige