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

复制谷歌VBA代码调整Excel表格大小遇无效引用错误求助

问题分析与修正

你的代码出现「Invalid or Unqualified reference」错误,核心是3个引用逻辑问题:

  • 已经把工作表赋值给wst对象,却还用Worksheets(wst)调用——Worksheets集合只接受索引数字或工作表名称字符串,直接用wst即可。
  • tblMSFT已经是ListObject表格对象,不需要再通过ListObjects(tblMSFT)获取,直接使用该对象本身。
  • 原With语句的嵌套逻辑完全混乱,把Resize方法、Range属性错误堆叠,导致引用无法识别。

下面是修正后的代码,逻辑更清晰且能正常运行:

Sub resize()
    Dim wst As Worksheet
    Dim tblMSFT As ListObject
    Dim lastDataRow As Long
    
    ' 获取目标工作表
    Set wst = Sheets("MASTER - Supplier File")
    ' 获取目标表格
    Set tblMSFT = wst.ListObjects("MSF_Table")
    
    ' 定位表格首列最后一行有数据的行号
    lastDataRow = wst.Cells(wst.Rows.Count, tblMSFT.ListColumns(1).Index).End(xlUp).Row
    
    ' 调整表格范围:从表头行到最后一行数据
    tblMSFT.Resize wst.Range(tblMSFT.HeaderRowRange.Row & ":" & lastDataRow)
End Sub

补充说明:你谷歌搜到的原始代码本身就有语法问题(Resize后漏写括号),且嵌套写法极易出错。修正后的代码先明确找到数据最后一行,再通过表格的Resize方法重新定义范围,彻底规避了引用错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 23:48:28