il metodo Intersect sembra non lavorare qui
Domanda
Sto scrivendo uno snippet per escludere le cellule duplicate.Quindi se c'è una cella nella colonna 4 che inizia con 0-9 (tutto in formato testo) e non appare nella colonna 8, vorrei aggiungere il valore di cella a una variabile di stringa.Ma sembra che il metodo intersect restituisca sempre nulla qui ... qualsiasi idea?
Sub getAddNum()
addnum = ""
Set rng1 = Columns(4).SpecialCells(xlCellTypeConstants)
Set rng2 = Columns(8).SpecialCells(xlCellTypeConstants)
For Each currentcell In rng1
cellValue = CStr(currentcell.Value)
If InStr("0123456789", CStr(Left(cellValue, 1))) And Intersect(currentcell, rng2) Is Nothing Then
addnum = addnum & CStr(currentcell.Value) & ", "
End If
Next
Range("I9").Value = addnum
End Sub
. Soluzione
Come ho commentato, re-scrivi il tuo codice come questo:
Sub getAddNum()
Dim addnum As String, cellValue As String
Dim rng1 As Range, rng2 As Range, currentcell As Range
addnum = ""
Set rng1 = Columns(4).SpecialCells(xlCellTypeConstants)
Set rng2 = Columns(8).SpecialCells(xlCellTypeConstants)
For Each currentcell In rng1
cellValue = CStr(currentcell.Value)
If Left(cellValue, 1) Like "[0-9]" And IsError(Application.Match(cellvalue,rng2,0)) Then
addnum = addnum & CStr(currentcell.Value) & ", "
End If
Next
Range("I9").Value = addnum
End Sub
.
non testato, ma penso che tu possa ottenere la logica.
Spero che questo sia in qualche modo.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow