【问题标题】:VLOOKUP formula in VBA for same cell every sheetVBA 中的 VLOOKUP 公式用于每个工作表的相同单元格
【发布时间】:2014-03-18 00:08:35
【问题描述】:

我正在尝试在 VBA 中创建一个简单的宏来更改工作簿中所有工作表中同一单元格的公式的名称。但是,由于某种原因,它不起作用。有人可以向我解释什么是错的吗?为什么将公式更改为lookupvalue而不是formulavalue会起作用?

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

结束子

【问题讨论】:

    标签: vba for-loop vlookup


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

    【讨论】:

    • 仍然是“应用程序定义的或对象定义的错误”。
    • 至少公式最终出现在单元格中。但是,它希望我在查找值周围添加“”,但是当我尝试添加它时出现错误。我怎样才能做到这一点?当我尝试 & CHR(34) & etc 时出现错误。
    • However, it wants me to add " " around lookup value, - 抱歉,不明白你的意思?
    • @GoodGuyMike,试试我更新后的答案——你在'Test'!A1:B122之前错过了,
    • 我该如何更改,以便循环从工作表 n 开始,而不是跳过名为“测试”的工作表?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-10
    • 1970-01-01
    相关资源
    最近更新 更多