excel - 将数据从列表框移动到工作表
问题描述
我需要您的帮助,将数据从列表框移到工作表中。此列表框包含 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
解决方案
目前还不是很清楚你是如何设置目标单元格的,无论如何你可以试试这个(按照你的样本的逻辑):
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
注意:如果目标范围小于数组,则仅复制该数量的数据,其余的将被省略。
推荐阅读
- java - 如何将侧输入/额外输入传递给 JdbcIO RowMapper Java
- jquery - 如何ajax请求仅每3分钟更改一次的图像src?
- reactjs - 酶无法识别 lodash.flowright
- sql - 此 SQL 查询如何返回具有相同 id_product 的结果?
- ssl-certificate - http(80)到https(443)ssl重定向在haproxy中不起作用?
- go - 访问没有 http.Request 的上下文
- python - Docker python请求导致DH KEY TOO SMALL错误
- javascript - JS非阻塞打印
- javascript - 如何检查一个单词在 JSON 数组中出现的次数
- reactjs - 如何使用 React Hooks 在第一次渲染时加载带有道具的子组件