【问题标题】:Vlookup not working if open excel sheet in invisible mode?如果在不可见模式下打开 Excel 工作表,Vlookup 不起作用?
【发布时间】:2016-08-01 23:49:57
【问题描述】:

我正在使用 vlookup 函数从另一张表中检索数据,源文件以后台模式打开,下面是我用于隐藏 excel 打开和屏幕更新的代码

Application.ScreenUpdating = False 
app.Visible = False

但是如果没有上面的行 vlookup 工作正常,在不可见模式下打开时只有 vlookup 功能不起作用。

    partner = "C:\K\KDt\Con.xls"
    Set pf = app.Workbooks.Open(partner)
    Set ps = pf.Worksheets("Con")

ThisWorkbook.Sheets("KQC").Range("H4:H" & k) = "=IFERROR(VLOOKUP(A4&""SP"",Contract_PARTNERS.xls!$H:$R,4,),"""")"

【问题讨论】:

  • 这是什么意思:“我从 vlookup 中得到任何结果。”
  • @dbmitch 当我以不可见模式打开 excel 时,vlookup 参考不起作用。我没有得到任何结果,但是当我在视图模式下打开时,vlookup 工作正常
  • 您需要显示所有代码 - 否则会继续提出不必要的明显问题。比如...在设置app.visible = true 之前,您是否设置了“Application.ScreenUpdating = True”。还有你在哪里设置应用变量?
  • 您是否在单独的 Excel 实例中打开 Contract_Partners 工作簿?如果是这样,其他实例可能无法将该文件识别为已打开。
  • @ScottHoltzman 是的,这个问题是在新实例中打开的源文件,因为 vlookup 无法引用,请告诉我如何在已存在实例的背景模式下打开 excel

标签: vba excel excel-formula vlookup


【解决方案1】:

问题是由 Excel 如何处理工作簿引用之间的链接引起的。您的代码正在创建指向 Excel 预期未打开且因此不正确的文件的链接。即使它不可见,它也是打开的。

要引用另一个工作簿,您不必同时打开该文件。

文件打开时的示例公式:

=VLOOKUP(A1,'1.csv'!$A:$I,9,0)

文件关闭时相同的公式

=VLOOKUP(A1,'C:\Users\nable\Documents\csvs\[1.csv]1'!$A:$I,9,0)

如果在输入公式时已建立链接,则 Excel 应在打开/关闭文件时自动进行调整。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多