2016-06-09 4 views
0

Ich verstehe diese Frage vor gefragt worden, aber ich fand die Antworten schwierig zu übernehmen und wegen, dass ich für mein eigenes spezifisches Problem zu fragen:Escaping korrekt VBA

Cells(counter, col).Value = "=MONTH(G2) & " - " & YEAR(G2)"

Ich habe versucht:

Cells(counter, col).Value = "=MONTH(G2) & """ - """ & YEAR(G2)"

Aber das ist fehlgeschlagen. Ich bin ein wenig verwirrt, wie man richtig entkommt, und nachdem ich die Stackoverflow-Antworten auf diese Frage überprüft hatte, war ich immer noch verwirrt. Vielen Dank.

Antwort

4

Sie wollen, dies erreichen:

=MONTH(G2) & " - " & YEAR(G2) 

So ist der String-Wert muss für sie die doppelten Anführungszeichen verdoppeln-up, wie folgt aus:

=MONTH(G2) & "" - "" & YEAR(G2) 

Deshalb:

ActiveSheet.Cells(counter, col).Value = "=MONTH(G2) & "" - "" & YEAR(G2)" 
+0

Das macht Sinn. Vielen Dank. Ich wähle als beantwortet, sobald verfügbar. –

0

Assu Sie möchten lieber das Zahlenpaar als ein echtes Datum oder eine Formel. Hier ist eine Möglichkeit, Tabellenfunktionen innerhalb eines VBA Unter verwenden:

Sub Joseph() 
    counter = 2 
    col = 2 
    Cells(counter, col).Value = "'" & [MONTH(G2)] & " - " & [YEAR(G2)] 
End Sub 

enter image description here

Der Apostroph verhindert, dass Excel die Nummer-Paar in ein Datum umgewandelt wird.

0

Ich denke, was Sie nach its:

Cells(counter, col).Formula = "=MONTH(G2) & "" - "" & YEAR(G2)" 

Eine Möglichkeit, Formeln mit der richtigen inneren Anführungszeichen zu erhalten ist, indem ein Platzhalter für die interne doppelte Anführungszeichen zu starten:

Cells(counter, col).Formula = "=MONTH(G2) & DBLQUOTE - DBLQUOTE & YEAR(G2)" 

wo die rechte Seite eine einfache wörtliche Zeichenfolge ist. Dann ersetzen Sie jedes Vorkommen von DBLQUOTE durch "", die Escape-Version eines doppelten Zitats.

Beachten Sie, dass ich .Value geändert habe .Formula --- Ich denke, das ist besser.

Hoffe, dass hilft.