【发布时间】:2018-11-07 13:11:04
【问题描述】:
我是 vba 新手,我想问一些关于我制作的 VBA 代码的问题。
我已经阅读了这个链接: VBA - Match Column Data and paste 但这不符合我的需求。
我的目标是将 E 列与 F 列匹配,并在 G 中的行内给出描述以粘贴到 H 列中。
如果匹配为假,则获取消息框错误。
我的问题是消息框总是出现在我的桌子上,没有匹配。
我的错误是什么?
谢谢大家。
This is an example of my sheet:
这是我目前的代码:
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
【问题讨论】: