一维变体数组 VBA
Single Dimension Variant Arrays VBA
总的来说,我有一个很好的用于单个值更改管理的宏,现在可以为多维数组编写一个宏,但需要能够在不使用错误处理的情况下进行区分。
当目标只有一个单元格时,还有其他解决方法吗?下面的错误处理解决了这个问题,但我认为它是 "sloppy."
对更好的方法的建议表示赞赏。
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
我将 if then 语句设置为 运行 一种方式 if target.count =1 和另一种方式 if target.count>1
总的来说,我有一个很好的用于单个值更改管理的宏,现在可以为多维数组编写一个宏,但需要能够在不使用错误处理的情况下进行区分。
当目标只有一个单元格时,还有其他解决方法吗?下面的错误处理解决了这个问题,但我认为它是 "sloppy." 对更好的方法的建议表示赞赏。
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
我将 if then 语句设置为 运行 一种方式 if target.count =1 和另一种方式 if target.count>1