我正在尝试在VBA中创建一个简单的宏来更改工作簿中所有工作表中相同单元格的公式名称。但是,由于某些原因它不起作用。有人可以向我解释有什么问题吗?为什么将公式更改为lookupvalue而不是公式值?
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
End Sub
答案 0 :(得分: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
之前错过了逗号(分号)。