假设我有一行单元格,其中包含以下值:
B2: "banana"
C2: "orange"
D2: "apple"
我把这个范围变成一个二维数组。我的主要代码在Word文档中:
dim MySheet as Excel.Worksheet
dim arr as variant
Set MySheet = Excel.Sheets(1)
arr = MySheet.Range(MySheet.Cells(2, 2), MySheet.Cells(2, 4))
我有一个组合框CbbFruits
,我不想一项一项地添加项目,所以我使用.list
方法:
CbbFruits.List = arr
仅添加“banana”条目。据我了解,此方法要工作于数组,因此单元格范围必须垂直放置。
我不想重新洗牌我的细胞。有没有一种方法可以切换数组的轴?
最佳答案
从 Excel 范围创建数组的问题是值是水平表示的(请记住,它是一个二维数组)。您需要transpose具有垂直表示值的数组。在 Word-VBA 中执行此操作的最简单方法是使用现有的 Excel.Application
对象。
这是一个完整的示例:
Private Sub Test()
Dim oExcel As New Excel.Application
Dim oWb As Excel.Workbook: Set oWb = oExcel.Workbooks.Open(filePath)
Dim MySheet As Excel.Worksheet
Set MySheet = oWb.Worksheets(1)
Dim arr As Variant
arr = MySheet.Range(MySheet.Cells(2, 2), MySheet.Cells(2, 4))
CbbFruits.List = oExcel.WorksheetFunction.Transpose(arr)
oWb.Close SaveChanges:=False
oExcel.Quit
End Sub
关于excel - 如何从 "horizontal"单元格范围填充组合框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59229613/