나는 이중 기준에 간단한 카운터를 설정하려고 내가런타임 오류를 찾을 수 없습니다 (13) 원인
런타임 오류에 의해 중단하고 13
당신이 우는 소리시피, I 여러 개의 카운터를 모두 Integer로 가지고 있고 열 D와 A의 값에 따라 고정 된 모든 적중 수를 계산하기를 원합니다.) 중요한 경우 : D 열의 텍스트가 다른 두 개의 Dates-comparisson을 통해 생성됩니다 열로 표시되지만 텍스트로 서식이 지정됨).
Private Sub Workbook_Open()
Dim lr, i, k, a, b, c, d, e, f, g, h, j, l, m, n, o, p, q, r, s As Integer
a = b = c = d = e = f = g = h = j = l = m = n = o = p = q = r = 0
Worksheets("overdue").Activate
lr = Range("D" & Rows.Count).End(xlUp).Row
k = 1
For i = 1 To lr
If Cells(i, "D").Value = "OVERDUE" And Cells(i, "A") Like "*φίλτρου*" Then
a = a + 1
ElseIf Cells(i, "D").Value = "OVERDUE" And Cells(i, "A") Like "*Λιπαντικού*" Then
b = b + 1
k = k + 1
End If
Next i
이 난
If Worksheets("overdue").Cells(i, "D").Value = "OVERDUE" And Worksheets("overdue").Cells(i, "A") Like "*ößëôñïõ*" Then
처럼 바로 셀 구문에서 워크 시트 이름을 재배치하려하지만 도움이 될 것 같지 않습니다. 아무도 제안이 있습니까? If를 추가하는 것을 잊어 버렸습니다. 디버거에 If가 시작되는 행이 표시되므로 첫 번째 카운터에 대한 명령문이 표시됩니다.
또한, 나는 근본적으로 코드를 변경하고이
Sub testcounter()
Dim cell As Range
Dim a As Integer
For Each cell In Worksheets("Sheet2").Range("D1:D3500")
If cell.Value = "1" Then
a = a + 1
End If
Next
MsgBox a
End Sub
처럼, 최대한 그것을 단순화 경우 여전히
IF 문 첫 줄에오류를 준다, 13 참조
입니다.
"나는 정수와 같은 모든 여러 카운터가"- 마지막 하나는 정수입니다. 다른 모든 것은 Variant입니다. VBA에서는 각 유형에 대해 유형을 지정해야합니다. 이와 같이 쉼표로 구분 된 목록을 사용할 수 없습니다. 그리고 쇠사슬로 묶인 임무는 당신이 생각하는 것처럼 작동하지 않습니다. –
그래도 Dim Lr As Integer, i As Integer, k As Integer 등으로 선언을 변경하더라도 동일한 오류가 발생합니다. – user36510
정수는 VBA에서 실제로 사용되지 않습니다. 그들은 16 비트 오피스와의 호환성을 위해 16 비트 정수를 참조합니다. 32 비트 (및 64 비트) 정수는 32 비트이며 VBA에서는 long이라고합니다. 정수 +/- 32K v는 +/- 20 억입니다. – ACatInLove