El método de intersección parece no funcionar aquí.
Pregunta
Estoy escribiendo un fragmento para excluir las células duplicadas.Por lo tanto, si hay una celda en la columna 4 que comienza con 0-9 (todo en formato de texto) y no aparece en la columna 8, me gustaría agregar el valor celular a una variable de cadena.Pero parece que el método de intersección siempre devuelve nada aquí ... ¿Alguna 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
Solución
Como he comentado, vuelva a escribir su código como este:
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
No probado, pero creo que puedes obtener la lógica.
Espero que esto ayude.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow