VBA confronto tra stringhe
Hai un problema con Excel? 
VBA confronto tra stringhe
di TaJean data: 21/03/2016 15:11:23
Ciao a tutti,
ho il seguente problema che non riesco a risolvere.
ho un foglio A e nella colonna C si sono dei dati univoci, ad esempio mela, pera, kiwi, banana etc ed un foglio B sempre nella colonna C altri dati univoci, mela, pera, kiwi etc.
il mio scopo è confrontare le due colonne, e i dati del foglio A non trovati nel foglio B copiati su un terzo foglio.
ho scritto il codice ma :
1) è lentissimo e mi chiedevo magari un altra alternativa per renderlo più efficiente. visto che le colonne possono arrivare a 25000 valori
2) ho effettuato un test con la colonna del foglio A con 1085 valori univoci e nel foglio B con 1083 valori univoci quindi il contatore dovrebbe restituire 2 invece mi da sempre zero.
non capisco dove sbaglio.
grazie a tutti per l'aiuto.
Dim fglpart As String
Dim fgldest As String
Dim pand As String
Dim Lrisultato As Integer
pand = "P1"
fglpart = pand & "OK"
fgldest = pand & "Report"
cont = 0
CCI = Sheets(fglpart).range("C" & Rows.Count).End(xlUp).Row
CCI = CCI - 1
CCI2 = Sheets(fgldest).range("C" & Rows.Count).End(xlUp).Row
CCI2 = CCI2 - 1
For ariga = 1 To CCI
For nriga = 1 To CCI2
Lrisultato = StrComp(Sheets(fglpart).Cells(ariga, 3), Sheets(fgldest).Cells(nriga, 3), vbTextCompare)
If Lrisultato = Null Then
cont = cont + 1
End If
Next nriga
Next ariga
MsgBox cont
|
di Raffaele_53 data: 21/03/2016 16:07:29
Questo il metodo più veloce che conosco.
Cambia i nomi dei fogli
Option Explicit
Option Compare Text
Sub ricerca()
Dim X, Ur, Rr, Rg
Rr = 2
Rg = 2
Ur = Sheets("foglio1").Range("C" & Rows.Count).End(xlUp).Row
For X = 1 To Ur 'se innizia da 1
If Application.WorksheetFunction.CountIf(Sheets("foglio2").Range("C:C"), Sheets("foglio1").Cells(X, 3)) = 1 Then
Sheets("foglio3").Cells(Rr, 1) = Sheets("foglio1").Cells(X, 3) ' quelli trovati
Rr = Rr + 1
Else
Sheets("foglio3").Cells(Rg, 2) = Sheets("foglio1").Cells(X, 3) ' quelli doppi o nulli
Rg = Rg + 1
End If
Next X
MsgBox "fatto"
End Sub
|
di TaJean data: 21/03/2016 17:48:27
Raffaele_53 grazie davvero, ho messo i fogli corretti l'ho provata ed è perfetta.
semplicemente geniale
TaJean
Vuoi Approfondire?