각 루프를 반복하는 For 루프가 있으므로 루프에서 사용할 각 행의 D 열에서 값을 가져와야합니다.형식 불일치 오류 # 13
다음과 같이 카운터 값을 행 번호로 사용하여 값을 가져 오려고했습니다.
X = Worksheets("Test").Cells(4, Counter).Value
나는 Type mismatch error #13
각 루프를 반복하는 For 루프가 있으므로 루프에서 사용할 각 행의 D 열에서 값을 가져와야합니다.형식 불일치 오류 # 13
다음과 같이 카운터 값을 행 번호로 사용하여 값을 가져 오려고했습니다.
X = Worksheets("Test").Cells(4, Counter).Value
나는 Type mismatch error #13
가 발생 계속이 난 당신이 당신은 특정 데이터 유형으로 X
을 정의
A
이 오류가 발생합니다 때 생각할 수있는 두 가지 시나리오가 있지만 다른를 할당하는 그것을 입력하십시오. 예를 들어. X
을 Long
으로 정의했지만 셀에 String
이 포함되어 있습니다. 귀하의 셀이 A1
이고 excelSU
이라고 가정 해 보겠습니다. 오류가이 예제
Sub Sample()
Dim x As Long
x = ThisWorkbook.Sheets("Sheet1").Range("A1").Value
End Sub
마찬가지로 특정 유형의 Counter
을 선언하지만, 다른으로 사용하여 수도를 참조 복제합니다. 예를 들어
Sub Sample()
Dim counter As Excel.Application
For counter = 1 To 20
x = ThisWorkbook.Sheets("Sheet1").Range("A" & counter).Value
Next
End Sub
B
는하자 다시 세포 A1
의 예를 취할. 셀에 #N/A
또는 #DIV/0!
과 같은 수식 오류가 있거나 다른 오류가 있습니다. 오류가 위와 같은 코드를 사용하여 복제하려면 당신이
BTW 행 번호로 카운터의 값을 사용하여 Type Mismatch Error
편집
을 얻을 것이다,
Counter
이다 이 아닌Column
으로 사용됩니다. 구문은Cells(Row,Column)
정수 배열이나 비슷한 것으로 문자열을 가져올 수 있습니다. I just answered someone's question on a somewhat similar problems.
는 내가 그에게 준 모든 기능을 코드 예제를 통해 갈 제안 : 귀하가 루프에 관해서는
.
즉 이유는
사용자는 하드 코딩 된 값 (4rth 칼럼)를 사용한다. 결국 유지 관리 문제가 발생할 것입니다. 열을 추가하는 사용자는 쉽게 코드를 망칠 것입니다.
코드는 자체적으로 말하지 않습니다. 하드 코딩 된 값을 적절히 명명 된 변수로 대체하면 해당 값이 대체됩니다.
참고 : 이것은 교차로 수 때문에 프로세서에서 더 많이 소모 될 수 있습니다. 10,000 개의 행이있는 테이블을 생각해 내면 항상 전략을 적용 할 수 있습니다.
링크와 답을 확인하지만, 한편 여기에 내가 테이블 /하고 ListObjects 함께 할 것입니다 방법의 짧은 버전입니다 :
dim listO as ListObject
set listO = Worksheets("Test").ListObjects(1)
dim listC as ListColumn
set listC = ListO.ListColumns("ColumnTitle")
dim listR as ListRow
dim anArrayX() as Variant
ReDim anArrayX (1 to listO.ListRows.Count)
dim intersectedRange as Range
for i = 1 to listO.ListRows.count
set rowRange = ListO.ListRows(i).Range
set intersectedRange = Application.Intersect(rowRange, listC.Range)
anArrayX(i) = intersectedRange.Value
Debug.Print anArrayX(i)
next i
는 D 열 및 행 번호 카운터가 세포이다 (카운터, D는) –