以下示例可以解释这一情况:
Sheets("Plot Data July").Select
ActiveSheet.ListObjects("tPDJuly").Range.AutoFilter Field:=2
ActiveSheet.ListObjects("tPDJuly").Range.AutoFilter Field:=4
因此,如上所示,Field:=2
这是对表中第二个字段“tPDJuly”的相对引用。因此,现在如果我添加更多列,这个数字不会更新。该字段在表中实际上称为“Grade”。那么有没有一种方法可以对其进行编码,以便无论它位于哪一列,“Grade”始终会更新?
我想一个解决方案就是我们添加一行来查找“年级”的列号是多少?
更新:这是完整声明
Sheets("Plot Data July").Select
ActiveSheet.ListObjects("tPDJuly").Range.AutoFilter Field:=4, Criteria1:="0"
ActiveSheet.ListObjects("tPDJuly").Range.AutoFilter Field:=2, Criteria1:="J4"
该表中的Field:=4
字段实际上在哪里,即同样是Exclude
tPDJuly[Exclude]
Field:=2
Grade
所以我想将这些固定的引用改为更灵活的2
引用4
。
答案1
将这个线程拖回生活中。我今天一直在尝试自己实现一些目标,通过蛮力和反复试验,我找到了一个答案,它不涉及混乱的选择语句或激活的工作表。
TableName.Range.Autofilter Field:=TableName.ListColumns("Column Name").Index, _
Criteria1:="SearchString"
答案2
您应该能够使用以下表属性来选择一列:
sheets("Plot Data July").select
range("tPDJuly[Grade]").select
这应该会选择您的成绩列。将值连接成引用时,引号似乎很重要。
如果您想要两列,则需要稍微改变一下:
sheets("Plot Data July").select
range("tPDJuly[Grade],tPDJuly[Column4]").select