我在如何將具有多個列和行的範圍中的數據放入列表框時遇到問題。如何使用VBA將數據從一個範圍(多行和多列)填充到列表框
假設我有個範圍RNG多行多列 我試圖其中:
如果我試圖的addItem RNG(I,J),則一切都將是在1列中。
我也嘗試過.list,但它也沒有工作。
我在如何將具有多個列和行的範圍中的數據放入列表框時遇到問題。如何使用VBA將數據從一個範圍(多行和多列)填充到列表框
假設我有個範圍RNG多行多列 我試圖其中:
如果我試圖的addItem RNG(I,J),則一切都將是在1列中。
我也嘗試過.list,但它也沒有工作。
這是你正在嘗試?
Option Explicit
Private Sub CommandButton1_Click()
Dim ws As Worksheet
Dim rng As Range
Dim i As Long, j As Long, rw As Long
Dim Myarray() As String
'~~> Change your sheetname here
Set ws = Sheets("Sheet1")
'~~> Set you relevant range here
Set rng = ws.Range("A1:E5")
With Me.ListBox1
.Clear
.ColumnHeads = False
.ColumnCount = rng.Columns.Count
ReDim Myarray(rng.Rows.Count, rng.Columns.Count)
rw = 0
For i = 1 To rng.Rows.Count
For j = 0 To rng.Columns.Count
Myarray(rw, j) = rng.Cells(i, j + 1)
Next
rw = rw + 1
Next
.List = Myarray
'~~> Set the widths of the column here. Ex: For 5 Columns
'~~> Change as Applicable
.ColumnWidths = "50;50;50;50;50"
.TopIndex = 0
End With
End Sub
快照
可以使用的foreach將項目添加到列表框中
ActiveSheet.Shapes("lstSample").Select
Dim currRange As Range
With Selection
For Each currRange In Range("yourRange")
.AddItem currRange.Value
Next
End With
對於通過在你的射程每一行和每一列本身迭代。
我想有多個列的列表框。您只能將所有數據設置爲1列 – NCC
我假設你想填充3列
Dim currRange As Range
Dim i As Integer
With Selection
For Each currRange In Range("yourRange")
i = i + 1
If i = 1 Then .AddItem cell.Value
If i = 2 Then .List(.ListCount - 1, 1) = "1"
If i = 3 Then
.List(.ListCount - 1, 2) = cell.Offset(0, 2).Value
i = 0
End If
Next
End With
我假設你有3列。
非常感謝Sudhakar,它取決於範圍 - 爲什麼我要計算範圍的列和行。 – NCC
是Siddhart Rout。這是我已經嘗試了兩天。我真的很感激。 – NCC