한 시트의 한 열의 값과 다른 시트의 다른 열, 동일한 통합 문서의 값을 비교하려고합니다. 이 함수는 다른 열의 각 셀을 단계별로 실행하고 셀 값인 문자열이 sheet2에 없으면 sheet1의 행이 sheet3에 복사됩니다. 두 배열을 비교하는 것처럼 생각할 수 있습니다. Array1에 Array2에 나타나지 않는 값이 있는지 확인하고 Array1에 나타나지 않으면 값이 Array3에 복사됩니다.Excel VBA 형식 불일치 오류
내 주요 문제는 5 행에서 형식 불일치 오류가 발생하고 있습니다. 값에 문자열이 포함되어 있습니다. 나는 엑셀 VBA에서 상당히 새롭고 비행 중에 그것을 배우려고 노력하고있다. 어떤 도움이라도 대단히 감사하겠습니다.
Sub search()
Dim count As Integer
count = 0
For Each i In Worksheets("Sheet1").Range("C2:C4503")
Set first_cell = Worksheets("Sheet1").Cells(i, 3) <-- Mismatch eror
For Each j In Worksheets("Sheet2").Range("X2:X4052")
Set second_cell = Worksheets("Sheet2").Cells(j, 24)
If second_cell = first_cell Then Exit For
Next j
count = count + 1
Set Worksheets("Sheet3").Cells(count, 1) = Worksheets("Sheet1").Cells(j, 1).Select
Next i
최종 서브
값을 원할 경우 '.Value' 또는'.Value2' 속성을 사용하십시오. 'Cells()'는 범위를 반환합니다. – ja72
값은 어떤 식 으로든 정렬 되었습니까? 아니면 sheet1의 값을 sheet2의 아무 곳에 나 지정할 수 있습니까? – ja72
당신은 모호한 방식으로 i를 사용하고 있습니다 : 먼저, 각 i에 대해 범위 항목으로, 그런 다음 셀 (i, 3)에 정수로 사용합니다. – chuff