Vba 在列表框中显示非连续的单元格区域

Vba 在列表框中显示非连续的单元格区域,vba,Vba,我试图将一个称为“Departments”(A1:A10,C1:C10,E1:E10)的表中的非连续单元格范围显示到一个多列列表框中 我在这里找到了一个示例,但它只显示表的第一行(A1、C1、E1) 有人能帮我编辑这段代码并解释它是如何工作的吗?:) 先谢谢你 Option Explicit Private Sub CommandButton1_Click() Dim Ar() As String Dim rng As Range, cl As Range Dim i As Long Set

我试图将一个称为“Departments”(A1:A10,C1:C10,E1:E10)的表中的非连续单元格范围显示到一个多列列表框中

我在这里找到了一个示例,但它只显示表的第一行(A1、C1、E1)

有人能帮我编辑这段代码并解释它是如何工作的吗?:)

先谢谢你

Option Explicit

Private Sub CommandButton1_Click()
Dim Ar() As String
Dim rng As Range, cl As Range
Dim i As Long

Set rng = Range("A1,C1,E1")

i = 1

For Each cl In rng
    ReDim Preserve Ar(1, 1 To i)
    Ar(1, i) = cl.Value
    i = i + 1
Next

With ListBox1
    .ColumnCount = i - 1
    .ColumnWidths = "50;50;50"
    .List = Ar
End With
End Sub
或许

Private Sub CommandButton1_Click()
   Dim rng As Range

   Set rng = Range("A1:E10")

   With ListBox1
      .ColumnCount = 3
      .ColumnWidths = "50;50;50"
      ' load 1st, 3rd and 5th columns of range into listbox
      .List = Application.Index(rng, Evaluate("ROW(1:" & rng.Rows.Count & ")"), Array(1, 3, 5))
   End With
End Sub

完美的现在,如果我想将从该列表框中选择的内容插入到另一张图纸(sheet1,A1:C1)中的另一个连续范围中。。有可能吗?是的,你可以使用列表和列表索引属性的组合,除非它是一个多选列表框,然后你必须循环所有项目并测试所选属性。请举例说明这是一个单独的问题,作为一个问题问可能更好