You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将VLOOKUP公式改为引用工作簿首个工作表而非‘Sheet1’?

解决方法:动态引用工作簿第一个工作表

这问题很常见,我来给你调整公式,让它自动引用目标工作簿的第一个工作表,而不是固定的Sheet1:

修改后的完整代码

.Range("I15:I" & lastRow).FormulaR1C1 = _
    "=IF(VLOOKUP(RC[-8],[" & combinedWorkbook.Name & "]" & combinedWorkbook.Sheets(1).Name & "!C1:C2,1,TRUE)=RC[-8],VLOOKUP(RC[-8],[" & combinedWorkbook.Name & "]" & combinedWorkbook.Sheets(1).Name & "!C1:C2,2,TRUE),NA())"

关键修改点

  • 把原代码里的两处Sheet1,替换成了" & combinedWorkbook.Sheets(1).Name & "
  • combinedWorkbook.Sheets(1)会直接指向目标工作簿里按顺序排列的第一个工作表,不管它的名称是Sheet1还是自定义的名字,都能准确引用

原理说明

在VBA中,Sheets(1)是按工作表在工作簿中的索引位置来获取工作表的,索引从1开始,所以Sheets(1)永远代表第一个工作表。通过.Name属性获取它的名称,再拼接到公式字符串里,就实现了动态引用第一个工作表的需求,避免了硬编码工作表名称的局限性。

内容的提问来源于stack exchange,提问作者Rodge95

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:20:23