Метод пересекается, кажется, не работает здесь

StackOverflow https://stackoverflow.com//questions/22059704

  •  23-12-2019
  •  | 
  •  

Вопрос

Я пишу фрагмент, чтобы исключить дублированные клетки.Таким образом, если есть ячейка в столбце 4, которая начинается с 0-9 (все в текстовом формате) и не отображается в столбце 8, я хотел бы добавить значение ячейки в строковую переменную.Но кажется, что метод пересекания всегда ничего не возвращал здесь ... Любая идея?

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
.

Это было полезно?

Решение

Как я прокомментировал, повторно напишите свой код так:

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
.

Не проверено, но я думаю, что вы можете получить логику.
Надеюсь, это как-то помогает.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top