2016-06-09 50 views
0

我明白這個問題已經被問過,但我發現答案很難將正因爲如此,我要求我自己的特定問題:逃離正確VBA

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

我想:

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

但是失敗了。我有點困惑如何正確地逃避和審查了這個問題的stackoverflow迴應後,我仍然感到困惑。謝謝。

回答

4

你想實現這一點:

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

所以對於它的字符串值需要仔細了雙引號,像這樣:

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

因此:

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

這很有道理。謝謝。我選擇回答一次可用。 –

0

Assu明你想要數字對而不是真正的日期或公式。這裏是使用VBA子內工作表函數的方式:

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

enter image description here

單引號阻止Excel數對轉換成日期。

0

我想你以後就是:

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

一種方式來獲得與正確的內部雙引號的公式是通過內部雙引號替換的佔位符開始:

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

右邊是一個簡單的文字字符串。然後將每個出現的DBLQUOTE替換爲"",即雙引號的轉義版本。

請注意,我將.Value更改爲.Formula ---我認爲這樣更好。

希望有所幫助。