Hallo zusammen,
ich bin als VBA Anfänger leider gerade auf ein Problem mit einem aufgezeichneten Makro gestoßen.
Folgendes Makro habe ich in einem Tabellenblatt aufgezeichnet:
Sub LeerzeichenTrennen()
'
' LeerzeichenTrennen Makro
'
Selection.TextToColumns Destination:=ActiveCell.Offset(0, 1).Range( _
"Tabelle1[[#Headers],[machine-name]]"), DataType:=xlDelimited, TextQualifier _
:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:= _
False, Comma:=False, Space:=True, Other:=False, FieldInfo:=Array(Array( _
1, 1), Array(2, 1)), TrailingMinusNumbers:=True
End Sub
Es bewirkt, dass der Inhalt der aktuellen Zelle an Leerzeichen getrennt wird und in die beiden nebenliegenden Zellen aufgeteilt, kopiert wird.
Bei dem Tabellenblatt, in dem das Makro aufgezeichnet wurde, funktioniert es wunderbar. Ich möchte die Funktion allerdings auch aus zahlreichen anderen Tabellenblättern aufrufen.
Ich gehe davon aus, dass das Problem an "Tabelle1" in obigem Code liegt. Das Tabellenblatt aus dem ich es aufgezeichnet habe ist das zweite in meinem Workbook. Wenn ich identischen Vorgang in dem dritten Tabellenblatt als Makro aufzeichne, heißt es im Quellcode "Tabelle1141". Leider ergibt das für mich von der Nummerierung keinen Sinn.
Jetzt meine Frage: ist es möglich in diesem Code statt "Tabelle..." irgendwie auf das aktive Tabellenblatt oder auf den Namen eines Tabellenblattes zu referenzieren? Ich habe bereits ausprobiert oben statt "Tabelle..." andere Namen wie "ActiveSheet" oder Worksheets("Name") einzusetzen. Hat leider so nicht funktioniert.
Oder kann man die Range anders festlegen. Bei meinen Daten ist der Offset immer eins nach rechts und die Range sind immer zwei Zellen, da ich immer nur ein Leerzeichen habe.
Schon einmal vielen Dank für eure Antworten =)
|