excel 如何将数据从一个表填充到另一个表

wooyq4lh  于 2023-06-25  发布在  其他
关注(0)|答案(1)|浏览(159)

我有两张tableA和B。A是汇总表,B是表A的细目。我想做到的是,表A中输入的任何内容都会反映在表B中。

ReSql = "INSERT INTO " & XGetListObject(Sheet1.ListObjects(1)) & "([Account?],[count of' 
              'invoices],[value],[Percent]) " & _'
                          '"SELECT [Account?],[count of invoices],[value],[Percent] FROM "'
                                 '& GetListObject(Sheet2.ListObjects(1)) & " as T2"

有什么想法,请问如何做到这一点?

m3eecexj

m3eecexj1#

如果我没理解错的话:

Sub test()
Dim rg As Range, rgF As Range

With Sheets("Sheet1")
Set rg = .Range("A2", .Range("A" & Rows.Count).End(xlUp))
End With

With Sheets("Sheet1") 'sheet for result, change if needed
    Set rgF = .Range("F2") 'starting cell result, change if needed
    rgF.Resize(500000, 4).Clear
End With

With rgF.Offset(0, 1)
    .Value = "A01" 'the starting invoice number, change if needed
    .AutoFill Destination:=.Resize(Application.Sum(rg.Offset(0, 1)), 1), Type:=xlFillDefault
    .Resize(Application.Sum(rg.Offset(0, 1)), 1).Offset(0, 2).NumberFormat = "0%"
End With

For Each cell In rg
    Set rgF = rgF.Resize(cell.Offset(0, 1).Value, 1)
    rgF.Value = cell.Value
    rgF.Offset(0, 2).Value = cell.Offset(0, 2).Value / cell.Offset(0, 1).Value
    rgF.Offset(0, 3).Value = cell.Offset(0, 3).Value
    Set rgF = rgF.End(xlDown).Offset(1, 0)
Next

End Sub

sub不会自动运行。因此,它需要像一个按钮被点击来运行分。sub不做加法,但总是“重建”table-2的整个数据。因此,它将始终首先清除表2中的所有数据。
它为table-1的帐户创建一个范围作为rg变量。
它创建一个起始单元格,其中结果将作为rgF变量。
然后清除表2中的所有数据。
它将起始发票编号填入rgF偏移量(0,1)-然后根据该发票编号填入系列-然后用百分比格式化表2的最后一列。
然后它循环到rg中的每个单元格,用cell.offset 0,1的值重置rgF的行。用循环单元格值填充rgF,用除法结果填充rgF偏移0,2,用百分比填充rgF偏移0,3。

相关问题