gpt4 book ai didi

arrays - MS Excel -> 2 列到二维数组中

转载 作者:行者123 更新时间:2023-12-04 22:10:58 26 4
gpt4 key购买 nike

我来自一个 Unix 世界,我从来不需要用 VBA 为 Office 开发一些东西,我现在必须做一些,我很难过!请帮我! :)

所以我有 2 个 Excel 表(我们称它们为 Sheet1 和 Sheet2)和 2 个表单(Form1 和 Form2)来编辑/添加数据。

在 Sheet1 中,前两列是 MovieId 和 MovieName。我们不知道这些列中有多少行。
Form1 控制 Sheet1 中的数据,Form2... 在 Sheet2 中控制数据。

在 Form2 初始化时,我想创建一个类似于 (MovieId1,MovieName1;MovieId2,MovieName2;...,...;MovieIdN,MovieNameN) 的二维数组,其中该数据已从 Sheet1 中提取,如排序如果您愿意的话,可以使用 Java 中的 map ...

如果它是这样对我来说实际上没问题: (0,"MovieId0;MovieName0";1,"MovieId1,MovieName1";..,"..";N,"MovieIdN,MovieNameN")

我不知道如何使用变量最后一行编号创建数组,因为编译器似乎总是想要一个常量来初始化数组......

请赐教!

最佳答案

Value 方法Value2 房产 .

例如Range("$A$2:$B$4").Value2(1,1)或者Range("$A$2:$B$4").Value()(1,1)
数组的下界从 1 开始。lbound(Range("$A$2:$B$4").Value2, 1) - 行元素从ubound(Range("$A$2:$B$4").Value2, 2) - 行元素结束lbound(Range("$A$2:$B$4").Value2, 2) - 列元素从ubound(Range("$A$2:$B$4").Value2, 2) - 列元素结束

编辑:遍历数组的代码

Dim myAddress As String
Dim dataArray As Variant

Dim rowStart As Long, rowEnd As Long
Dim colStart As Long, colEnd As Long

Dim rowCtr As Long
Dim colCtr As Long

myAddress = "$A$2:$B$4"
dataArray = Range(myAddress).Value2

rowStart = LBound(dataArray, 1)
rowEnd = UBound(dataArray, 1)
colStart = LBound(dataArray, 2)
colEnd = UBound(dataArray, 2)

For rowCtr = rowStart To rowEnd
For colCtr = colStart To colEnd
Debug.Print rowCtr & ":" & colCtr, vbTab & dataArray(rowCtr, colCtr)
Next
Next

EDIT2:在我的示例中,我假设地址为 $A$2:$B$4 .
您可以在其前面加上工作表名称。例如 Sheet1!$A$2:$B$4Sheet2!$A$2:$B$4
附带说明,数组可以定义为动态的(如果它是一维的)。
例如 dim my1DArray() as Integer
二维数组见以下代码
Dim myArray
Dim dynamicRows As Integer
dynamicRows = 2

ReDim myArray(0 To dynamicRows, 0 To dynamicRows)
myArray(0, 0) = "hello"

dynamicRows = 20
ReDim myArray(0 To dynamicRows, 0 To dynamicRows)
MsgBox myArray(0, 0)
myArray(0, 0) = "hello"

ReDim Preserve myArray(0 To dynamicRows, 0 To dynamicRows)
MsgBox myArray(0, 0)

关于arrays - MS Excel -> 2 列到二维数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1796852/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com