【发布时间】:2022-10-17 00:41:10
【问题描述】:
我有代码试图引用一个表并调整它的大小。
它首先检查表是否应用了过滤器并将其删除。
我将跳过关键位之前的代码。我声明了您在此代码中看不到的变量,但相关声明包含在下面。还尝试使用 Option Explicit 声明然后未声明。
Dim ExcelTool As Workbook: Set ExcelTool = Workbooks.Open(ExcelTool_Template_Path1 &
ExcelTool_Template_Name1, ReadOnly:=True)
Dim ExcelToolRates As Worksheet: Set ExcelToolRates = ExcelTool.Worksheets("Rates")
Dim RatesTable As ListObject: Set RatesTable = ExcelToolRates.ListObjects("Table1")
If RatesTable.AutoFilter.FilterMode Then
RatesTable.AutoFilter.ShowAllData
End If
ExcelToolRates.Activate
RatesTable.Resize Range(3)
其他一切都有效,包括使用对象变量“RatesTable”去除过滤器。
在调整大小时会出现错误
“对象'_Global'的方法'范围'失败”
当我将范围转换为表格时,“Table1”是默认表格名称,它位于此工作簿中。
代码从同一 Excel 实例中的不同工作簿运行。我尝试使包含引用表的工作簿处于活动状态并使用此行,但同样的错误:
ActiveWorkbook.Sheets("Rates").ListObjects("Table1").Resize Range(3)按照克里斯的建议,我尝试了
RatesTable.Resize RatesTable.DatabodyRange.Resize(3)这会产生以下错误:
【问题讨论】:
-
在
RatesTable.Resize Range(3)行中,您希望Range(3)做什么? -
嗨,克里斯,我认为它会将表格的大小调整为 3 行,这样我就可以在粘贴新数据之前保留标题和几行(这可能会或可能不会比以前的数据集少,因此摆脱了大部分旧数据数据行的好衡量)。通过谷歌找到的几篇文章表明这是我需要做的,但我可能是愚蠢的......
标签: excel vba datatable resize listobject