문제

복제 된 세포를 제외시키기 위해 스 니펫을 쓰고 있습니다.따라서 0-9 (텍스트 형식 모두)로 시작하고 열 8에 나타나지 않는 열 4에 셀이 있으면 문자열 변수에 셀 값을 추가하고 싶습니다.그러나 교차하는 방법은 항상 여기서 아무 것도 반환하지 않는 것 같습니다.

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