2014-02-18 26 views
0

我試圖在VBA中更改一個簡單的宏,以更改工作簿中所有工作表中同一單元格的公式名稱。但是,由於某種原因,它不起作用。有人能向我解釋什麼是錯的?爲什麼它會將公式更改爲查找值而不是公式值?在VBA中爲每個工作表的相同單元的VLOOKUP公式

Sub RenameTest() 

For Each aSheet In ActiveWorkbook.Worksheets 
    aSheet.Activate 
    If aSheet.Name <> "Test" Then 
     Dim lookupvalue As String 
     Dim formulavalue As String 
     lookupvalue = Cells(2, 3).Value 
     formulavalue = "=VLOOKUP(" & lookupvalue & "'Test'!A1:B122;2;FALSE)" 
     Cells(2, 11).Formula = formulavalue 
    End If 


Next aSheet 

末次

回答

1

當使用.Formula屬性,你應該使用逗號,作爲分隔符(即使需要分號作爲分隔符本地設置)。更改;,

formulavalue = "=VLOOKUP(" & lookupvalue & ",'Test'!A1:B122,2,FALSE)" 
Cells(2, 11).Formula = formulavalue 

或者,你可以使用.FormulaLocal(與您當地的分離,即分號;):

formulavalue = "=VLOOKUP(" & lookupvalue & ";'Test'!A1:B122;2;FALSE)" 
Cells(2, 11).FormulaLocal = formulavalue 

另一個問題 - 你'Test'!A1:B122之前已經錯過了逗號(分號)。

+0

仍爲「應用程序定義或對象定義的錯誤」。 –

+1

等一下,現在它似乎工作。謝謝! –

+0

至少公式結束於單元格中。但是,它希望我在查找值附近添加「」,但是當我嘗試添加該值時出現錯誤。我怎樣才能做到這一點?當我嘗試&CHR(34)等時出現錯誤。 –

相關問題