我有一个问题。 荷兰论坛不能帮助我,所以我在这里张贴。
我有一张受保护的Excel表格,里面有一张表格。 用户可以向表中添加数据并插入和删除行。
我已经有一个工作的VBA来插入(和删除)一行,但我不会从上面的单元格复制公式(这种情况是J24)。
屏幕截图:
screenshot http://www.mobadvies.nl/excelquestion.jpg
VBA是:
Private Sub CommandButton1_Click()
ActiveSheet.Unprotect Password:="password"
ActiveSheet.ListObjects("Tabel2").ListRows.Add AlwaysInsert:=True
ActiveSheet.Protect Password:="password"
End Sub
Private Sub CommandButton2_Click()
ActiveSheet.Unprotect Password:="password"
ActiveSheet.ListObjects("Tabel2").ListRows(ActiveSheet.ListObjects("Tabel2").ListRows.Count).Delete
ActiveSheet.Protect Password:="password"
End Sub
我需要添加什么才能使其正常工作?
有人可以帮助我吗?
答案 0 :(得分:0)
尝试这样的事情?
Private Sub CommandButton21_Click()
ActiveSheet.Unprotect Password:="password"
Dim NewRow As ListRow
Set NewRow = ActiveSheet.ListObjects("Table1").ListRows.Add(AlwaysInsert:=True)
ActiveSheet.ListObjects("Table1").ListRows(1).Range.Select
Selection.Copy
NewRow.Range.Cells(1, 1).Select
ActiveSheet.Paste
ActiveSheet.Protect Password:="password"
End Sub
Private Sub CommandButton22_Click()
ActiveSheet.Unprotect Password:="password"
ActiveSheet.ListObjects("Table1").ListRows(ActiveSheet.ListObjects("Table1").ListRows.Count).Delete
ActiveSheet.Protect Password:="password"
End Sub
基本上,它将公式从第一行复制到新创建的行中。我是VBA的新手,所以不确定这是否是这样做的最佳方式或者您正在寻找的内容。希望这有帮助!
修改强>
Private Sub CommandButton21_Click()
ActiveSheet.Unprotect Password:="password"
Dim NewRow As ListRow
Set NewRow = ActiveSheet.ListObjects("Table2").ListRows.Add(AlwaysInsert:=True)
ActiveSheet.ListObjects("Table2").ListRows(1).Range.Cells(10).Select
Selection.Copy
NewRow.Range.Cells(10).Select
ActiveSheet.Paste
ActiveSheet.Protect Password:="password"
End Sub
然后尝试这样做。这将复制第一行,单元格10(在你的情况下为J 23)并将其复制到最新的行单元格10(J24,J25等...)让我知道它是否有效!