我有一个问题,可能很容易让您解决。
我有两个表:Table1和Table2。这两个表都在同一工作表中,称为“预算”。
我想添加一个命令按钮/一个加号按钮,使用户可以在每个表的底部添加新行。
但是,在通过宏记录功能进行了尝试之后,我认识到,在向Table1添加了几行新记录之后,Table2的新行被添加到了中间的某个位置。
有人可以给我提供代码,以解决此问题并进行自动调整吗?
我一生中从未编码过任何东西。
提前感谢您的帮助!
记录器的代码:
Sub NEWROW()
'
' NEWROW Makro
'
'
Range("B12:C12").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End Sub
答案 0 :(得分:1)
尝试此代码
Option Explicit
Sub AddRows()
Dim wks As Worksheet
Dim tbl1 As ListObject
Dim tbl2 As ListObject
Set wks = ActiveSheet
Set tbl1 = wks.ListObjects("Table1")
Set tbl2 = wks.ListObjects("Table2")
tbl1.ListRows.Add
tbl2.ListRows.Add
End Sub
表对象说明here
更新好吧,对于一个绝对的初学者来说,这可能是最简单的方法。
Sub AddRowTbl1()
Dim wks As Worksheet
Dim tbl As ListObject
Set wks = ActiveSheet
Set tbl = wks.ListObjects("Table1")
tbl.ListRows.Add
End Sub
Sub AddRowTbl2()
Dim wks As Worksheet
Dim tbl As ListObject
Set wks = ActiveSheet
Set tbl = wks.ListObjects("Table2")
tbl.ListRows.Add
End Sub
PS 更高级的用户将使用功能
Function tblAddRow(tblname As String, wks As Worksheet)
Dim tbl As ListObject
On Error GoTo EH
Set tbl = wks.ListObjects(tblname)
tbl.ListRows.Add
EH:
End Function
Sub Test_tblAdd()
tblAddRow "Table1", ActiveSheet
End Sub