我在循环变量数组(8204变量类型)时遇到了一些麻烦。我正在通过输入框(类型8)寻求输入,并希望用户能够ctrl +多个不相交的范围和单元格。我遇到的问题是,当我尝试循环选择这些范围时,它只会拾取第一个。
以下是该问题的一个有效例子:
Sub myarray()
MyAnswer = Application.InputBox("Pick a description cell(s) in spreadsheet for the link" _
& vbNewLine & "(Hold Ctrl to select multiple cells)", Type:=8)
' if its type 8204
If VarType(MyAnswer) = 8204 Then
MsgBox "Length of array: " & UBound(MyAnswer)
' loop through each element in the array
For Each vvalue In MyAnswer
MsgBox vvalue
Next
End If
End Sub
在提示符下键入以下内容或使用ctrl +:
选择一些范围$A$12:$A$13,$B$4:$C$4,$D$4
出于某种原因,当我想遍历所有范围/单元格中的所有元素时,我只能获取第一个范围$A$12:$A$13
。
非常感谢任何帮助。谢谢!
答案 0 :(得分:2)
Application.InputBox返回一个范围对象,因为你没有使用set它使用默认属性.value,它只返回第一个区域的值。
Sub myarray()
Dim MyAnswer as Range
Set MyAnswer = Application.InputBox("Pick a description cell(s) in spreadsheet for the link" _
& vbNewLine & "(Hold Ctrl to select multiple cells)", Type:=8)
' if its type 8204
If not MyAnswer is nothing Then
dim cell as Range
' loop through each cell in the range
For Each cell In MyAnswer
MsgBox cell.value
Next
End If
End Sub