У меня есть требование, которое идет как это:Range.Find() терпит неудачу
- У меня есть два файла Excel с данными из колонок А Q
- я итерация по каждой строке в каждом листе Excel одного , получить значения в столбце A и найти их в другом Excel для соответствующего листа.
- Если есть совпадение, я проверяю значения в столбцах A, G и J в обоих Excel. Если они не совпадают, они регистрируются в файле журнала (Excel с представлением матричного типа, где указано несоответствие). (Еще предстоит реализовать)
- Если нет совпадения, я должен снова зарегистрировать их. (Еще не Реализована)
Кодекс:
For Each workSheet1 In MainWorkBook.Worksheets
Set MainWorksheet = workSheet1
Set SecondaryWorksheet = workSheet1
MainWorksheet.Activate
Cells.Select
Selection.EntireColumn.Hidden = False
Selection.EntireRow.Hidden = False
rowcount = MainWorksheet.Cells(Rows.count, 1).End(xlUp).Row
For i = 3 To rowcount
MainCheckName = Trim(MainWorksheet.Cells(i, "A"))
If (PreviousCheck <> MainCheckName And MainCheckName <> "") Then
SecondaryWorksheet.Activate
rowcount = SecondaryWorksheet.Cells(Rows.count, 1).End(xlUp).Row
SecondaryWorksheet.Range(SecondaryWorksheet.Cells(1, "A"), SecondaryWorksheet.Cells(rowcount, "A")).Select
Set SecondaryCheckName = Selection.Find(what:=MainCheckName, LookAt:=xlWhole)
If Not SecondaryCheckName Is Nothing Then
CheckRow = Selection.Find(what:=MainCheckName, LookAt:=xlWhole).Row
<further process here>
Next Next
Теперь у меня есть проблема с этой линии:
Set SecondaryCheckName = Selection.Find(what:=MainCheckName, LookAt:=xlWhole)
После обработки этой деятельности в течение десяти листов, хотя У меня есть содержимое, которое соответствует в обеих листах разных книг, я получаю Nothing
для функции Find
.
Что не так и почему здесь не работает условие?
Я вижу, что у вас есть 2 'For's, но только один следующий –
К сожалению, забыли добавить, что' Next' в коде –
'MainWorksheet' и' SecondaryWorksheet' устанавливаются на один и тот же рабочий лист во время каждой итерации внешней стороны 'For .. Каждый ... Следующий'. Как может быть какая-то разница? – Jeeped