如何从"horizontal"单元格范围内填充组合框?



假设我有一行单元格,它们具有以下值:

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

仅添加"香蕉"条目。据我了解,这种方法可以处理数组,因此单元格的范围必须垂直放置。

我不想重新洗牌我的细胞。有没有办法切换数组的轴?

从 Excel 范围创建数组的问题在于值是水平表示的(请记住,它是一个 2D 数组(。您需要转置数组以使值垂直表示。在 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

最新更新