代码不单独填充表格单元格,而是填充整个列

时间:2016-06-16 22:10:51

标签: excel vba excel-vba listobject

我有一个按钮,它从列表框中获取数据并将其放入我的表的特定单元格中。我现在的问题是,当将值插入单元格时,它会填充整个列,而不是特定单元格。

以下是按钮的代码:

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

这就是我按下按钮后的样子 This

我希望它只填充Item#中的第一个单元格,然后填充同一行中Specs中的单元格。然后沿着每个单元格的行向下并填写下一个项目。相反,每个项目都会填满旧项目。

1 个答案:

答案 0 :(得分:3)

如果您要定位结构化表格中的单个单元格(又名 ListObject object),则需要转换AutoCorrect.AutoFillFormulasInLists property

Application.AutoCorrect.AutoFillFormulasInLists = False

这也可以通过 Alt + F T P Alt <来实现/ kbd> + A 然后转到键入时自动套用格式选项卡,取消选中填写表格中的公式以创建计算列

如果您希望提供此应用程序范围的选项,可以选择在子过程结束时重新打开它。

Application.AutoCorrect.AutoFillFormulasInLists = True