【发布时间】:2021-10-25 00:27:57
【问题描述】:
我在工作表 2 中有一个名为“MyTable”的表。该表的行数每次都会根据数据而变化。我想清除表格的内容并使用宏调整它的大小,使其只有两行——一个标题行和一个空行。
表格标题行从 B5 到 K5。
我尝试了下面的代码,它清除了表格内容并调整了大小,但是并没有根据需要调整大小。它调整大小,但不清除 C 列中的表格边框。
非常感谢任何帮助。
Sub Table_Resize()
Dim rng as Range
Sheet2.Select
Range("MyTable").ClearContents
Set rng = Range("MyTable[#All]").Resize(2, 10)
Sheet2.ListObjects("MyTable").Resize rng
End Sub
【问题讨论】:
-
请分享一个简单的
Sheet2.ListObjects("MyTable").DataBodyRange.Delete有什么问题? -
@VBasic2008,我试过了,得到了错误“下标超出范围”。
-
Subscript out of range如果您的表格不在代号Sheet2的工作表上,则会发生。参考正确的工作表,它将起作用 - 提供 DatabodyRange 有数据,否则它将抛出Object Variable or With block variable not set.... 所以首先检查 DatabodyRange 不是什么都没有。 -
绝对是listobject类型的表吗?很难说,因为您选择了最后一个单元格,所以看不到表格句柄。 You have the Table Design ribbon when a cell in the table is selected?
-
@DarrenBartrup-Cook,感谢您帮助我。我正在尝试多种选择。显然桌子本身有问题。我在一张新表中重新整理了整个表格,它似乎工作正常。我使用的宏代码没有问题。
标签: excel vba resize datacolumn