リストボックスからデータを取得し、それをテーブルの特定のセルに配置するボタンがあります。私の問題は、セルに値を挿入すると、特定のセルではなく、そのセルが含まれる列全体を埋めることです。
ボタンのコードは次のとおりです。
Private Sub cbSubmit_Click()
Dim i As Long
Dim v As Variant
Dim vTable() As Variant
Set inventoryTable = cSheet.ListObjects("inventory_table")
colItemID = inventoryTable.ListColumns("Item #").Index
colSpecs = inventoryTable.ListColumns("Specs").Index
v = inventoryTable.DataBodyRange.Rows
ReDim vTable(1 To UBound(v, 1), 1 To 4)
For i = 0 To lbItemList.ListCount - 1
vTable(i + 1, 1) = "=DATA!" & lbItemList.List(i, 2)
If specLink = "" Then
Exit For
Else
vTable(i + 1, 4) = lbItemList.List(i, 1)
End If
inventoryTable.DataBodyRange(i + 1, colItemID).Value = vTable(i + 1, 1)
inventoryTable.DataBodyRange(i + 1, colSpecs).Value = vTable(i + 1, 4)
Next
Unload Me
End Sub
これは、ボタンを実行した後の様子です。
Item # の最初のセルと、同じ行の Specs のセルのみに入力するようにします。次に、各セルの行を下に移動し、次の項目を入力します。代わりに、各アイテムは古いアイテムの上に埋められます。