Registriert seit: 27.07.2014
Version(en): 2013
Hallo liebe VBA Gemeinde,
ich habe ein Objekt vbObj1 welches einen Excel-Zellenbereich mit n x m Zellen repräsentiert.
Mit einem zweiten Objekt vbObj2 möchte ich die Daten aus vbObj1 übernehmen. Es soll
also gelten vbObj2 = vbObj1. Aber vbObj2 soll nur jedes 2. Element von n aus dem Zellenbereich von
dem ursprünglichen n x m Zellenbereich aus vbObj1 übernehmen. Der Bereich von m bleibt
unangetastet.
Wie mache ich das?
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
Hallo Sonja,
stelle uns bitte eine Beispieltabelle vor, in der du markierst, was du aus Arbeitsblatt1 in Arbeitsblatt2 oder in eine neue Tabelle kopiert haben möchtest. So wird dein Anliegen klarer.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Sonja,
was genau sind vbObj1 und vbObj2 für Variablentypen?
Gruß Uwe
Registriert seit: 27.07.2014
Version(en): 2013
Hallo Uwe,
ich würde sagen wir deklarieren sie als Variant, damit wird in Excel ja fast jeder Zellinhalt einer Zelle abgedeckt.
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Sonja,
meinst Du sowas?
Code:
Sub aaa()
Dim varObj1 As Variant
Dim varobj2 As Variant
Dim i As Long, j As Long, k As Long
varObj1 = Range("A1:B11").Value
ReDim varobj2(1 To (UBound(varObj1, 1) / 2) + UBound(varObj1, 1) Mod 2, 1 To UBound(varObj1, 2))
For i = 2 To UBound(varObj1, 1) Step 2
k = k + 1
For j = 1 To UBound(varObj1, 2)
varobj2(k, j) = varObj1(i, j)
Next j
Next i
Range("D1").Resize(UBound(varobj2, 1), UBound(varobj2, 2)).Value = varobj2
End Sub
Gruß Uwe
Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:1 Nutzer sagt Danke an Kuwer für diesen Beitrag 28
• SonjaFido
Registriert seit: 27.07.2014
Version(en): 2013
Hallo Uwe,
genau das was ich meinte. Vielen Dank für die Super-Profi Lösung!