程不选择VBA
我的代码是给了一个错误” 1004:。Range类的选择方法失败程不选择VBA
Sub AdvencedFilterNew()
'
' AdvencedFilterNew Macro
'
Dim WsOutput As Worksheet
Dim WsMain As Worksheet
Dim wsScenarios As Worksheet
Dim ScenarioIDrow As Long
Dim ScenarioIDColumn As Long
Dim rgn As Range
Dim p As String
Dim q As String
Range("E15").Select
Range("E17:Q350").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
Range("E14:Q15"), Unique:=False
Set WsOutput = Worksheets("Output")
Set WsMain = Worksheets("Main Menu")
Set wsScenarios = Worksheets("Scenarios.New")
ScenarioIDrow = WsOutput.Cells.Find("Scenario ID").Row
ScenarioIDColumn = WsOutput.Cells(ScenarioIDrow, Columns.Count).End(xlToLeft).Column
p = wsScenarios.Cells(ScenarioIDrow, 1).Address(RowAbsolute:=False, ColumnAbsolute:=False)
q = wsScenarios.Cells(ScenarioIDrow, ScenarioIDColumn).Address(RowAbsolute:=False, ColumnAbsolute:=False)
If WsMain.Range("E15") > 0 Then
WsOutput.Range(p, q).Select
WsMain.Cells.Find("E15").Select
Else
End If
End Sub
所以,我基于p的Q中的地址的选择范围哪些是A22和ATX22。我不知道为什么我可以选择它,它用在我使用的其他代码中,另一个问题是,如果数字是4,它也会找到其他所有包含4的数字,例如1014,1024等等。我在这里?谢谢!
这是因为你必须在Activate
工作表中选择任何范围之前
WsOutput.Range(p, q).Select
WsMain.Activate
WsMain.Cells.Find("E15").Select
谢谢!你是对的! –
user3598756也许你可以帮助我。我想在WsOutput中找到E15,当它找到它时,我隐藏所有其他列。不知道如何写,我多次尝试。 –
不客气。至于另一个问题,我会将所有'UserdRange'列'Hidden'属性设置为'True',然后将找到的单元格列'Hidden'属性设置为'False。如果你没有成功通过你的编码努力做出新的职位 – user3598756
'Range.Find'方法根据其内容找不到地址。 https://msdn.microsoft.com/en-us/library/office/ff839746.aspx所以我相信你想'WsMain.Range(“E15”)'你在哪里使用'WsMain.Cells.Find(“E15”) ' – JamesFaix
谢谢詹姆斯,你是对的! –