【发布时间】:2013-12-06 00:10:12
【问题描述】:
我有一张大床单。我必须在该工作表中将多个过滤器设置为动态位置的列标题。设置过滤器后,我必须在工作表中找到具有列标题“Nov”的特定列,然后获取该列中值的总和并将该特定总和值导入到不同的工作表中。 我已经编写了代码,直到可以将过滤器设置为多列的部分,但是我发现很难找到列标题并添加该列。下面是我目前写的代码。
Sub Button2_Click()
Dim colName As Long
Dim colName1 As Long
Dim colName2 As Long
Dim r As Long
SearchV = Range("A8:DD8").Find(What:="Nov", LookIn:=xlValues, LookAt:=xlWhole, _
MatchCase:=False, SearchFormat:=False).Column
lastrow = Cells(Rows.Count, SearchV).End(xlUp).Row
colName = Range("A8:DD8").Find(What:="Teams", LookIn:=xlValues, LookAt:=xlWhole, _
MatchCase:=False, SearchFormat:=False).Column
colName1 = Range("A8:DD8").Find(What:="Items", LookIn:=xlValues, LookAt:=xlWhole, _
MatchCase:=False, SearchFormat:=False).Column
colName2 = Range("A8:DD8").Find(What:="Domain", LookIn:=xlValues, LookAt:=xlWhole, _
MatchCase:=False, SearchFormat:=False).Column
ActiveSheet.Range("$A$8:$DD$9999").AutoFilter Field:=colName, Criteria1:="ST Test", Operator:=xlOr, Criteria2:=""
ActiveSheet.Range("$A$8:$DD$9999").AutoFilter Field:=colName1, Criteria1:="Variance", Operator:=xlOr, Criteria2:="(Blanks)"
ActiveSheet.Range("$A$8:$DD$9999").AutoFilter Field:=colName2, Criteria1:="9S", Operator:=xlOr, Criteria2:="(Blanks)"
列标题始终从第 8 行开始。上面的行中存在一些无用的信息。所以我想要的是,假设“Nov”列在 H 行。总和应从 H9 计算到最后一行的末尾。当列在“H”列时,我使用了这个公式。
Cells(lastrow + 1, colName3).Formula = "=SUBTOTAL(9,H9:H" & lastrow & ")"
但是 'Nov' 列并不总是出现在 'H' 行中,所以我无法弄清楚如何更改我的代码以动态选择列。
【问题讨论】: