小编use*_*878的帖子

VB:类型不匹配错误,数组尺寸1x1

我试图使用Variant数据类型来存储字符串数组.这是我正在使用的代码的示例.

Sub Selecto()

Dim numRows As Integer    
Dim Badger As Variant

numRows = InputBox("How many rows?", "Rows",0)
Badger = Range("C21:C"& 21 -1 + numRows).Value    

For i = 1 To UBound(Badger)
    MsgBox (Badger(i, 1))
Next

End Sub
Run Code Online (Sandbox Code Playgroud)

我的目标是使它成为Badger一个数组,其长度可以由通过InputBox运行宏的用户定义.代码工作正常,除非numRows输入的值为1,它会吐出"类型不匹配错误".

该错误导致该行For i=1 to UBound(Badger)突出显示,错误消息框显示存在"类型不匹配".

我猜测对于一个1乘1的数组,数据只是存储为一个字符串而不是一个数组,并且该数组函数Ubound()和数组索引语法一样Badger(i,1)不起作用.是这样的吗?有没有办法强制它将变量识别为数组?

arrays vba dimensions type-mismatch

5
推荐指数
1
解决办法
7474
查看次数

标签 统计

arrays ×1

dimensions ×1

type-mismatch ×1

vba ×1