Я новичок в VBA, и я хотел бы спросить кое-что о коде VBA, который я сделал.
Я уже читал эту ссылку:
VBA - сопоставить данные столбца и вставить
но это не подходит для моих нужд.
Моя цель - сопоставить столбец E со столбцом F и дать описание внутри строк в G для вставки в столбец H.
Чтобы получить сообщение об ошибке в окне сообщения, если соответствие ложно.
Моя проблема в том, что на моем столе всегда отображается сообщение.
В чем моя ошибка?
спасибо всем.
Это пример моего листа:
Это мой код:
Sub AssociazioneCodice()
'Dichiarazione della variabile per conteggio righe
Dim countRows, r, c, e As Integer
Dim trovato As Boolean
trovato = False
'Applicazione conteggio righe - Achtung!: Inserire sempre correttamente il nome del foglio dove si trovano i riferimenti da contare
countRows = ThisWorkbook.Worksheets("Foglio2").Range("A:A").Cells.SpecialCells(xlCellTypeConstants).Count
'Il for serve a cercare il numero del codice nella colonna E dei codici
For r = 1 To countRows
'Con il secondo for effettuo la corrispondenza tra la colonna dei codici E e confronto con i codici di riferimento generici della colonna F
For e = 1 To countRows
'L'if seguente serve a dire SE la cella della riga 'r' della colonna E è uguale alla cella della riga 'e' della colonna F
If Cells(r, 5) = Cells(e, 6) Then
'visto che ho trovato corrispondenza, allora prendi il contenuto della riga 'e' della colonna G e copiala nella riga 'r' della colonna H
Cells(r, 8) = Cells(e, 7)
e = countRows 'una volta controllato il codice e trovato, passo alla riga 'r' successiva
trovato = True
End If
If trovato = False Then
'SE non è stato trovato il codice, allora manda un messaggio e scrivi "ERRORE" nella riga'r' della colonna H
MsgBox "Codice non in elenco " & Cells(r, 5).Value & " Riga " & r
Cells(r, 8) = " ERRORE "
Else: trovato = False 'Se ha trovato il codice, allora viene resettato a False il booleano 'trovato'
End If
Next e
Next r
MsgBox " Numero di avvisi a sistema " & countRows
End Sub