1
일반적으로 단일 값에 대한 변경 관리를위한 좋은 매크로가 있으며 이제는 다차원 배열에 대해 하나의 값을 쓸 수 있지만 오류 처리를 사용하지 않고 차이를 사용할 수 있어야합니다.단일 치수 가변 배열 VBA
대상이 하나의 셀일 때 다른 해결 방법이 있습니까? 아래의 오류 처리는 문제를 처리하지만 나는 그것이 "엉성한"것으로 간주합니다. 제안 사항은 더 나은 방법으로 평가됩니다.
Sub Dims(target As Variant)
Dim varData As Variant
Dim i As Integer
Dim j As Integer
varData = target
On Error GoTo Err
For i = 1 To UBound(varData, 1)
For j = 1 To UBound(varData, 2)
Debug.Print i, j, varData(i, j)
Next j
Next i
Err:
If Err.Number = 13 Then
Debug.Print target.Value
ElseIf Err.Number <> 0 Then
MsgBox "Error " & Err.Number & " just occured."
ElseIf Err.Number <> 13 And Err.Number <> 0 Then
Debug.Print "Err No.= "; Err.Number
Else
Debug.Print "No Error"
End If
End Sub
는 매크로를 실행하지 않는 다른 경우 ? 'target.count = 1 Then Exit Sub'를 맨 위에 추가하십시오. – BruceWayne
다른 함수를 사용하여 차원 수를 계산하십시오 : [VBA에서 전달 된 (Variant) 변수의 차원 수를 반환하는 방법] (https : //stackoverflow.com/questions/6901991/how-to-return-the-number-of-dimensions-of-a-variant-variable-passed-to-it-in-v) –
"target.count "목표가 범위라는 사실을 잊어 버렸습니다. 고맙습니다 – mpmcderm