【问题标题】:Moving data from a listbox to a worksheet将数据从列表框移动到工作表
【发布时间】:2019-06-08 07:42:15
【问题描述】:

我需要您的帮助,将数据从列表框移至工作表。 此列表框包含 14 列。如何将列表框中的行复制到工作表中?

Sub Post ()

    Dim arr
    Dim cnt As Integer
    cnt = ListBox1.ListCount
    arr = ListBox1.List

    With Sheets("DATABASE").ListObjects(1)
      .ListRows.Add
      .DataBodyRange.Cells(.ListRows.Count, 1).Resize(cnt, 14) = arr
    End With
    ListBox1.clear 

End Sub

********************** 更新 15-01-2019 17:30 ********************* * 我找到了这段代码,但它向下移动了 1 行,如下图所示

Private Sub CommandButton2_Click()
Dim i As Long
For i = 0 To ListBox1.ListCount
For x = 1 To 14
Sheets("Database").Range("B2").End(xlDown).Offset(i + 1, x - 1) = 
ListBox1.List(i, x - 1) 'ListBoxl.List(i, x)
Next x
Next i
End Sub

Pic

【问题讨论】:

    标签: excel vba populate


    【解决方案1】:

    不太清楚你如何设置目标单元格,无论如何你可以试试这个(按照你的示例逻辑):

    Dim Trg as Range
    
    With Sheets("DATABASE").ListObjects(1)
         Set Trg = .DataBodyRange.Cells(.ListRows.Count, 1)
    End With
    Trg.Resize(UBound(arr, 1), UBound(arr, 2)) = arr
    

    如果可以提前指定目标范围的左上角单元格和右下角单元格,就很容易将数组的内容粘贴到范围内,所以可以说

    Range("B8:E16") = arr
    

    如果你只知道左上角的单元格并且想动态设置目标范围的大小,可以像这样使用.Resize

    Range("B8").Resize(UBound(arr, 1), UBound(arr, 2)) = arr
    

    注意:如果目标范围小于数组,则仅复制该数量的数据,其余的将被省略。

    【讨论】:

    • 非常感谢您的回复,我不想将表格用作表格
    • 非常感谢您的回复,我不想将工作表用作表格,我需要将其用作范围我的意思是我想要代码作为复制列表框行并将其粘贴到特定范围内
    • 编辑了答案
    • 我找到了代码并更新了我的问题,并添加了错误图片
    【解决方案2】:

    我终于找到了解决我问题的代码

    Private Sub CommandButton1_Click()
    Dim lngItem As Long
    
    For lngItem = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(lngItem) Then
            With Sheets(1) '< qualify sheet here
                .Cells(.Rows.Count, "B").End(xlUp).Offset(1).Value = 
      ListBox1.List(lngItem, 1)
                .Cells(.Rows.Count, "C").End(xlUp).Offset(1).Value = 
     ListBox1.List(lngItem, 2)
            End With
        End If
      Next lngItem
    
      'Unload Me
      End Sub
    

    【讨论】:

      猜你喜欢
      • 2012-09-17
      • 2019-10-11
      • 2023-01-12
      • 2011-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-24
      相关资源
      最近更新 更多