Мой код дает ошибку»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
Итак, я выбора диапазона на основе адреса р д Какие A22 и ATX22.Я не знаю, почему я могу выбрать его, он работает в некоторых других кодах, которые я использую. Другая проблема, если число равно 4, она находит также все остальные числа, содержащие 4, например 1014, 1024 и т. Д. Может кто-то помочь меня здесь? Спасибо!
Метод Range.Find находит ячейки на основе их содержимого, а не адреса. https://msdn.microsoft.com/en-us/library/office/ff839746.aspx Поэтому я считаю, что вы хотите 'WsMain.Range (« E15 »)', где вы используете 'WsMain.Cells.Find (« E15 ») ' – JamesFaix
Спасибо Джеймс, ты прав! –