arrays - 从范围值VBA创建数组
问题描述
我正在尝试做一个宏,我需要一个值数组。这个数组是从一个大小可变的范围创建的。我已经尝试了以下方法,但一直出现错误:
Sub chase()
Dim rng As Range
Dim myarray() As Variant
last = Range("r1").End(xlDown).Address
MsgBox last
myarray = Range("r1:" & last).Value
For i = LBound(myarray) To UBound(myarray)
msg = msg & myarray(i) & vbNewLine
Next i
MsgBox "the values of my dynamic array are: " & vbNewLine & msg
End Sub
知道如何处理吗?
谢谢
解决方案
使用范围分配中的最后一个行号。
dim last as long
last = Range("r1").End(xlDown).row
myarray = Range("r1:r" & last).Value
您正在创建一个二维数组。尽管某些函数默认为第一级,但最好将二维数组视为二维数组。
For i = LBound(myarray, 1) To UBound(myarray, 1)
msg = msg & myarray(i, 1) & vbNewLine
Next i
推荐阅读
- javascript - 有人可以解释一下这个 for 循环是如何工作的吗?
- javascript - 两个同时长轮询和长轮询禁用 ajax 请求
- javascript - 定位玩家手
- java - VSCode Java 智能感知不适用于插件 vscjava.vscode-java-pack
- tensorflow - 来自 tf.keras 的 VGG19 不支持索引
- php - php curl post未处理,就像没有数据的get
- python-3.x - 按一列数值对csv数据进行排序
- c# - 如何使用 ObjectListView 库处理单击事件?
- firebase - 正确读取、使用 Firebase 数据以及使用 React Native 进行编写
- javascript - Python Eel - Javascript 过早运行