Создание более раннего вопроса StackOverflow, который я опубликовал: Индексирование по строке в столбце и поиск частичных совпадений в строке
Я создаю вариант этого, но там, где строка соответствует -Например, скопируйте всю строку (A1: C1) и вставьте в следующую пустую строку строки на новом листе.
Sub PeopleFilter()
' Defining Workbook and Worksheets to be used
Dim PeopleWorkbook As Workbook
Dim People As Worksheet
Dim UnitedKingdom, UnitedStates, Canada As Worksheet
' Letting our Variables equal something
Set PeopleWorkbook = ActiveWorkbook
Set People = PeopleWorkbook.Worksheets("People")
Set UnitedKingdom = PeopleWorkbook.Worksheets("United Kingdom")
Set UnitedStates = PeopleWorkbook.Worksheets("United States")
Set Canada = PeopleWorkbook.Worksheets("Canada")
' Defining ranges
Dim PeopleDataRange As Range
' C1 is cell 1 - C2, cell 2
Dim C1 As Range
Dim C2 As Range
' Equating C1 to the cell that is at the 2nd row first column
' Equating C2 to the cell that is at the last row position first column
Set C1 = People.Cells(2, 1)
Set C2 = People.Cells(People.UsedRange.Rows.Count, 1)
' Creating a range out of these two cells
Set PeopleDataRange = People.Range(C1, C2)
' Printing length of Range
Debug.Print PeopleDataRange.Count
' For each row
Dim ThisWorks As Boolean
For Each c In PeopleDataRange.Rows
If People.Rows(c, 2).Value = "United States" Then
ThisWorks = True
Else
ThisWorks = False
End If
Next c
End Sub
В настоящее время я просто отлаживаю это - вот почему он фактически ничего не делает, кроме изменения значения логического значения.Я получаю сообщение об ошибке на
Если People.Rows (c, 2) .Value = "United States", то код ошибки: 1004 - ошибка, определенная приложением или объектом
Рабочий процесс должен иметь видследует - Индексировать по столбцу в поисках конкретного совпадения строк, когда он найден - скопировать выборку столбцов.
IE Если в строке 35 найдено совпадение строк - вернуть строку 35 столбца A, b, c, d ... на новый лист.
Основные данные
Лист для вставки данных
* Редактировать - ожидаемые результаты должныбыть, как цикл повторяется каждый раз - логическое значение должно стать истинным, когда значение соответствует поиску
1: True 2: False 3: True 4: False 5: False 6: False *