Итак, исходя из выпадающего списка на листе "B"
, мы хотим прокрутить кучу строк на листе "A"
, удалить все из них, у которых нет Cell(4) = dropDownValue
, а затем скопировать этот диапазон и вставьте его в лист "B"
. Код ниже работает, но ничего не делает.Экземпляры Excel. Скопируйте и вставьте отфильтрованные строки.
Я могу отлаживать и видеть, что dropDownValue
сохранен правильно, а также что Cell(4)
, кажется, правильно вытягивается для каждой строки, через которую он проходит. Совершенно новый для VBA здесь, исходя из фона C#, поэтому это кажется мне очень запутанным.
Любые идеи о том, как исправить это или что я делаю неправильно?
Sheets("B").Select
Dim dropDownValue As String
dropDownValue = Left(Range("L1").Value, 3)
Dim wantedRange As Range
Dim newRange As Range
Dim cell As Object
Dim i As Integer
Set wantedRange = Sheets("A").Range("E11:E200")
For i = 1 To wantedRange.Rows.Count Step 1
Dim target As String
target = wantedRange.Rows(i).Cells(4)
If Not (target Like dropDownValue) Then
wantedRange.Rows(i).Delete
End If
Next i
Sheets("B").Select
Application.CutCopyMode = False
wantedRange.copy
Selection.wantedRange.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Вы с помощью «Как» так, что делает его таким же, как «=». Если вы ищете часть значения, вы должны использовать что-то похожее на «target Like» * «& dropDownValue &" * "' –
@Tim, если значение из раскрывающегося списка _includes_ подстановочных знаков –
@chris - хорошая точка –