2016-06-23 134 views
0

我正在寫一個相當複雜的宏,但我遇到的問題是在代碼「Input_Sheet」中的一張工作表上創建一個公式,將它自己等同於新創建的單元格工作表,可變地設置爲「ws」。 ws的每次迭代都被命名,所以這不是問題。我想正確的方式做到這一點是:在vba中使用變量工作表作爲公式目標

ActiveCell.FormulaR1C1 = " & ws.name & !R[" & totalRowCounter & "]C[" & totalColumnCounter & "]" 

(不要擔心totalRowCounter & totalColumnCounter變量,它們被適當地定義)。我只是不知道爲什麼公式沒有適當地引用新的ws表。有什麼想法嗎?

回答

3

你只需要把你的ws.name出了報價,還加入撇號之前和工作表名稱後會與可能在名稱中有空格的任何紙張幫助:

ActiveCell.FormulaR1C1 = "='" & ws.name & "'!R[" & totalRowCounter & "]C[" & totalColumnCounter & "]" 
+1

謝謝@ScottCraner,我正在更新,並添加撇號信息 –

+0

非常感謝你懷亞特。你能簡單地解釋一下,究竟是什麼?我認識到,在傳遞變量作爲參數時,我不得不使用它們......但我真的不明白爲什麼。 –

+1

它們用於將各種字符串連接在一起,因此您將='與表名連接在一起,等等。在excel公式中,它相當於'= CONCATENATE(string1,string2)'或'= string1&string2' –

1

我認爲這將如下:

ActiveCell.FormulaR1C1 = "=" & ws.name & "!R[" & totalRowCounter & "]C[" & totalColumnCounter & "]" 
+1

我認爲它的價值相當大,因爲答案是錯誤的,否則;) – Kyle