【问题标题】:Fill Excel Table with VBA Field by Field用 VBA 字段逐字段填充 Excel 表
【发布时间】:2014-06-29 01:42:04
【问题描述】:

我有一个 Excel 表格,需要逐条填写。

我开始了一段代码

Private Sub AddRecBro_Click()
    Dim Tbl As ListObject
    Dim NewRow As ListRow

    Set Tbl = Worksheets("Broker").ListObjects("Broker")
    Set NewRow = Tbl.ListRows.Add(AlwaysInsert:=True)

    ....

End Sub

现在我想像这样逐个字段地填充这个表......

Field("ID")=Max(Broker[ID])+1
Field("F1")=Sheets("Dashboard").Range("U5").Value
Field("F2")=Sheets("Dashboard").Range("U6").Value
Field("F3")=Sheets("Dashboard").Range("U7").Value
etccc

我不知道如何以这种方式填充我的列表对象...实际上我的数据在列中而不是在同一个位置...所以我想在它们的位置选择它们以填充新记录... 谢谢

【问题讨论】:

    标签: excel vba excel-2013


    【解决方案1】:

    ListObject 表由HeaderRowRange(如果表有标题)和DataBodyRange 组成。两者都是 Range 对象,您可以使用单元格的常规迭代方法对其进行迭代:

    Dim r as Long, c as Long
    
    For r = 1 to Tbl.DataBodyRange.Rows.Count
        For c = 1 to Tbl.DataBodyRange.COlumns.Count
            Tbl.DataBodyRange.Cells(r, c).Value = "__Insert some value__"
        Next
    Next
    

    【讨论】:

    • 感谢您的回答.. 我使用 Tbl.DataBodyRange.cells(r, 1).Value = Max(Tbl.DataBodyRange.Column("A")) + 1 时出错...您知道为什么吗?
    • 错误是什么?也许试试= Application.Max(Tbl.DataBodyRange.Columns(1)) + 1
    • 完美运行谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-22
    • 1970-01-01
    • 1970-01-01
    • 2011-02-18
    • 1970-01-01
    相关资源
    最近更新 更多