我有一个关于“call sub”功能与我想要的不同的问题。提前谢谢大家。
这是我的代码:
Sub filter()
Dim i As Integer, x As Single, y As Single
x = Worksheets("filter").Range("a2").Value
y = Worksheets("filter").Range("c2").Value
For i = 2 To 1000
If Worksheets("speaker data").Cells(i, "d") = "l" Then
Worksheets("speaker data").Cells(i, "n") = Worksheets("speaker data").Cells(i, "m") - 3 * Log(x) / Log(2#)
Else
Worksheets("speaker data").Cells(i, "n") = Worksheets("speaker data").Cells(i, "m") - 6 * Log(x) / Log(2#)
End If
Next i
Call driver
Call ways
Call type
ActiveSheet.Range("$A$1:$N$1000").AutoFilter Field:=14, Criteria1:=">=" & y, _
Operator:=xlAnd
End Sub
子“驱动程序”,“方式”,“类型”使用相同的自动过滤器,唯一不同的是自动过滤器字段。我遇到的问题是无论如何,我必须过滤最后一个“调用子”,然后前两个可以正常工作。对于上面的代码,我必须将“type”更改为“Y”或“N”,而不是All,然后,“ways”和“driver”将完美地运行。如果底部的“调用驱动程序”,那么我必须将驱动程序过滤器更改为“好”或“坏”,但不是全部,那么其余的过滤器都可以正常运行。
我想知道为什么会这样,调用子代码如下:
Sub ways()
Worksheets("speaker data").Select
If Worksheets("filter").Range("a6") = "All" Then
Selection.AutoFilter
ActiveSheet.Range("$A$1:$N$1000").AutoFilter Field:=9
Else
ActiveSheet.Range("$A$1:$N$1000").AutoFilter Field:=9, Criteria1:=Worksheets("filter").Range("A6").Value
End If
End Sub
我真的很感谢你的帮助。enter code here
谢谢大家。
答案 0 :(得分:1)
Call type
“type”是VBA中的关键词。将其替换为“Kind”。