2016-04-20 16 views
0

I-Pad Formel bin versucht, eine XLS-Zelle über VBA & XLS, aber ich bin Stolpern:EXCEL VBA Formula - Pad eine Zelle

Beispiel: Ich möchte anfügen "- Test" an den Inhalt der Zelle AC2 über eine Formel, dann fügen Sie diese Formel für alle restlichen Zeilen in Col AC:

lastRow = ActiveSheet.Cells(Rows.Count, "B").End(xlUp).Row 
strTest = " - Test" 

'append 

Range("AC2:AC2").Formula = "=AC2.value & value(strTest)" 

'then cut and paste 

Range("AC2").Select 
Selection.Copy 
Range("AC2:A" & lastRow).Select 
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _ 
    SkipBlanks:=False, Transpose:=False 

ich vermute, ich brauche die Syntax der Formel anzupassen anhängen. Ich habe mehrere Varianten ohne Erfolg ausprobiert.

Irgendwelche Vorschläge?

Hinweis: Die folgende Formel funktioniert, aber nur in der ersten Zeile. Kopieren & Paste einfach kopiert den Wert von X2 in nachfolgenden Zeilen, nicht die Formel:

Range("X2:X2").Formula = Range("AC2:AC2").Value & strTest 
Range("X2").Select 
Selection.Copy 
Range("X2:X" & lastRow).Select 
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _ 
    SkipBlanks:=False, Transpose:=False 
+0

Das würde einen Zirkelbezug schaffen. Warum willst du eine Formel drin? – Rory

+0

Ich möchte die gleiche Zeichenfolge an die TAIL jeder Zelle in Spalte AC anhängen. Ich kenne die Anzahl der Zeilen nicht im Voraus. Ausschneiden und Einfügen der Formel schien ein direkter Ansatz –

+0

Enthalten die Zellen derzeit Formeln oder Werte? – Rory

Antwort

1

anhängen strTest zu den Zellenwerten, können Sie verwenden:

With Range("X2:X" & lastRow) 
    .Value2 = .Worksheet.Evaluate("Index(" & .Address & "&""" & strTest & """,)") 
End With 
+0

Ja, das macht was ich will! - Danke @Rory! –

+0

Ich hasse diese nervigen Tripel-Zitate! :) –

-1

Ich denke, statt dies:

Range("AC2:AC2").Formula = "=AC2.value & value(strTest)" 

du wollen:

Range("AC2:AC2").Formula = "=AC2.value & value(" & strTest & ")"