我有一个按钮,它从列表框中获取数据并将其放入我的表的特定单元格中。我现在的问题是,当将值插入单元格时,它会填充整个列,而不是特定单元格。
以下是按钮的代码:
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中的单元格。然后沿着每个单元格的行向下并填写下一个项目。相反,每个项目都会填满旧项目。
答案 0 :(得分:3)
如果您要定位结构化表格中的单个单元格(又名 ListObject object),则需要转换AutoCorrect.AutoFillFormulasInLists property。
Application.AutoCorrect.AutoFillFormulasInLists = False
这也可以通过 Alt + F , T , P , Alt <来实现/ kbd> + A 然后转到键入时自动套用格式选项卡,取消选中填写表格中的公式以创建计算列。
如果您希望提供此应用程序范围的选项,可以选择在子过程结束时重新打开它。
Application.AutoCorrect.AutoFillFormulasInLists = True