永发信息网

vba 输出数组变量值到立即窗口

答案:3  悬赏:40  手机版
解决时间 2021-03-21 06:14
  • 提问者网友:原来太熟悉了会陌生
  • 2021-03-20 22:08
vba 输出数组变量值到立即窗口
最佳答案
  • 五星知识达人网友:过活
  • 2021-03-20 22:13
对于一维数组

可以用
Debug.Print Join(arr, ",")
输出到立即窗口
对于二维数组
For i = LBound(arr) To UBound(arr)
Debug.Print Join(WorksheetFunction.Index(arr, i, 0), ",")
Next
多维数组依次类推追问Debug.Print Join(arr, ",") 产生错误,无效的过程调用或参数追答请确认你的arr是一维数组,不是一维数组肯定会报错
因为join只能作用于一维数组,下面我不是给了一个二维数组的例子代码吗.你参考一下追问代码见补充
第一种join产生错误,无效的过程调用或参数,一次也不能运行。
第二种join可运行两次,出0,1,2,3正确结果,第三次"I=2"时产生错误WorksheetFunction类取不到属性Index
???追答看了你的代码返回的是一个Variant类型的变量.Variant类型的变量存储数组
经过测试不能直接被join函数识别,
可以通过WorksheetFunction.Index(array, 1, 0),转换为1维数组
Sub ReturnVal()
    Dim iArray As Variant
    iArray = WorksheetFunction.Index(ReturnArray(3), 1, 0)
    Debug.Print Join(iArray, ",")
end Sub另外一维数组就不要用
For i = LBound(iArray, 1) To UBound(iArray, 1)
        Debug.Print Join(WorksheetFunction.Index(iArray, i, 0), ",")
Next
处理了吧.这必然会报错.
WorksheetFunction.Index函数的意思是取多行多列数据中的一行.你用循环处理想取多行必然会报错.至于为什么能够0和1 都取第一行的数据我也没研究过.内在的原因我也就不清楚了.
全部回答
  • 1楼网友:渡鹤影
  • 2021-03-21 00:33
打开立即窗口,用debug.print可输出到
  • 2楼网友:雾月
  • 2021-03-20 23:00

只能显示数组中的一个值吧/?arr(i)  '显示第i个数
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯