在其中插入tablerow和paste公式

时间:2015-02-27 17:05:02

标签: excel excel-vba copy cell vba

我有一个问题。 荷兰论坛不能帮助我,所以我在这里张贴。

我有一张受保护的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

我需要添加什么才能使其正常工作?

有人可以帮助我吗?

1 个答案:

答案 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等...)让我知道它是否有效!