У меня есть рабочий лист, который регулярно обновляется с подробностями дубликатов записей из базы данных.Использование массива для поиска активного листа
Я пытаюсь создать макрос, который ищет конкретные записи, однако, поскольку я новичок в Excel VBA, я борюсь.
Кода я в настоящее время выглядит следующим образом: есть больше имен (21, чтобы быть точными, но для экономии времени я устранил эти)
Dim rg As Range
Dim lnglastrow As Long
Dim intnamemax As Integer
Dim strName() As String
intnamemax = 21
ReDim strName(1 To intnamemax)
strName(1) = "Bob Smith"
strName(2) = "Rhys Jones"
strName(3) = "Rebecca Hickling"
lnglastrow = ActiveSheet.UsedRange.Rows.Count
For Each rg In Range("A2:A" & lnglastrow)
For i = 1 To intnamemax
Set c = rg.Find(strName(i), LookIn:=xlValues)
If Not c Is Nothing Then
MsgBox "Proxy Candidate Found at " & found.Address
Else
MsgBox "No Proxy Candidates Found ", vbOKOnly, "Success!"
End If
Next i
Next
End Sub
макрос будет работать, однако при тестировании я получаю MsgBox кандидаты-кандидаты не найдены, несмотря на то, что есть запись для одного из имен.
Я изо всех сил пытаюсь выяснить, где я поступил неправильно, и был бы признателен за любую помощь.
копия один из имен из массива 'strName' и вставить в ячейку' A2' и посмотреть, если он работает – slayernoah
должен быть found.address c.address? вы можете сделать это с помощью formua, что-то вроде этого '= INDEX (IF (COUNTIF ($ B $ 1: $ B $ 6, $ A $ 1: $ A $ 6)> 0, ($ A $ 1: $ A $ 6 &" at " & ROW ($ B $ 1: $ B $ 6))), ROWS ($ D $ 1: $ D1)) 'данные, подлежащие проверке, находятся в столбце A, чтобы проверить, является ли B, а результаты находятся в столбце, который вы положили in, столбец D, является способом восхождения по счету при перетаскивании. Это формула массива, поэтому используйте CTRL SHIFT и ENTER. –
@Nathan_Sav, к сожалению, рабочий лист - это путь к большой формуле, плюс пользователь отлично справляется с Excel (с формулами и т. Д.) И хочет, чтобы он был автоматизирован. – Lbrin