VBA中的VLOOKUP公式为每张表格中的相同单元格

时间:2014-02-18 10:09:06

标签: vba for-loop vlookup

我正在尝试在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

1 个答案:

答案 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之前错过了逗号(分号)。