У меня есть рабочий лист (Sheet2), содержащий 27 столбцов, первая строка - это заголовки столбцов, которые составляют A-Z и NUM, всего 27 столбцов. В каждом столбце есть очень длинный список запрещенных URL-адресов, отсортированных по букве столбца, а последний (27-й) столбец предназначен для URL-адресов, начинающихся с числа. Длина столбцов составляет от 300 до 600 тысяч ячеек.
Я искал макрос-скрипт, который проверяет все недавно добавленные URL-адреса в столбце A Sheet1, чтобы выяснить, существуют ли они в Sheet2, в результате чего каждый URL-адрес помечается как «уже существует» или «должен быть добавлен», что-то вроде :
Лист1
Col(A) Col(B)
badsite1.com already exist
badsite2.com already exist
badsite3.com to be added
badsite4.con to be added
badsite5.com already exist
Соответственно, "подлежащие добавлению" URL-адреса будут добавлены в Sheet2 после запуска другого онлайн-теста для этого URL-адреса.
Удивительно, но я нашел следующий скрипт (пропустил его источник), который делает именно то, что я, после внесения некоторых незначительных изменений:
Sub x()
Dim rFind As Range, sFind As Range, sAddr As String, ws As Worksheet, rng As Range, ms As Worksheet
Application.ScreenUpdating = 0
Set ws = Sheets("Sheet2")
Set ms = Sheets("Sheet1")
ms.Range("B2:B" & Rows.Count).ClearContents
Set rng = ms.Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row)
For Each sFind In rng
With ws.UsedRange
Set rFind = .Find(sFind, .Cells(.Cells.Count), xlValues, xlPart)
If Not rFind Is Nothing Then
sAddr = rFind.Address
Do
sFind.Offset(, 1) = rFind.Address
sFind.Font.Color = -16776961
Set rFind = .FindNext(rFind)
Loop While rFind.Address <> sAddr
sAddr = ""
Else
sFind.Offset(, 1) = "No Found"
sFind.Offset(, 1).Font.Color = -16776961
End If
End With
Next
Set ms = Nothing
Set ws = Nothing
Set rng = Nothing
Set rFind = Nothing
Application.ScreenUpdating = True
End Sub
Запуск этого скрипта просто фантастический с небольшим списком URL-адресов (например, 5-10). С более длинным списком в Sheet1 col-A и ОГРОМНЫМИ списками в Sheet2, как у меня, этот скрипт представляет собой "черепаху", и ему потребовалось более часа, чтобы изучить список из 167 URL-адресов !!
Можно ли сделать этот сценарий "кроликом"? :)
Высоко признателен за любую предложенную помощь в этом отношении.
Как обычно .. заранее спасибо.
.FindNext
См. Раздел 4 в этой ссылке siddharthrout.com/2011/07/14/find-and-findnext-in-excel-vbaEDIT:
Если вы все еще застряли, возможно, я смогу увидеть образец и тогда мы сможем взять это оттуда? - person Siddharth Rout   schedule 15.04.2013