Hallo Profis,
wenn ich folgendes ausführe:
With Workbooks(strSourceFilename).Sheets(1)
.Cells(1, 53).FormulaR1C1 = "=SUBSTITUTE(RC[-46]&"" ""&RC[-47],"","",""."")"
.Cells(1, 53).AutoFill Destination:=Range("BA1:BA" & intLastUsedRow), Type:=xlFillDefault
.Cells(1, 54).FormulaR1C1 = "=LEFT(RC[-50],6)&""20""&RIGHT(RC[-50],2)"
.Cells(1, 54).AutoFill Destination:=Range("BB1:BB" & intLastUsedRow), Type:=xlFillDefault
End With
funktioniert es nicht („Laufzeitfehler 1004 - Die Autofill-Methode des Range-Objektes konnte nicht ausgeführt werden“), vermutlich weil das Workbook(strSourceFilename) nicht im Vordergund ist (es ist also geöffnet, aber nicht active). Denn wenn ich im Debugging das Script vor diesem With anhalte, das Workbook(strSourceFilename) markiere und damit nach vorne hole und active setze, funktioniert das Script. Wieso ist das so? Ich dachte, die Vermeidung von Select und Acitvate ist die hohe Kunst des VBA-Codens. Wie geht’s richtig?
Danke und ein schönes Wochenende :o)
-Rob.
P. S. @ Reinhard:
Danke für Deine Hilfe. Beispiel-Datei folgt.