对VBA有点陌生,我已经搜索了一些可以结合起来解决问题的代码。我正在构建一个使用任务的目标表(TargetTbl)来显示动态甘特图的“任务跟踪器”。可以手动修改Ttbl以进行日常任务管理,还可以每年从重复发源的Source表(SourceTbl)中进行更新,以减少工作量。我的目标是使用ListObjects复制要添加到目标表(TargetTbl)底部的源表(SourceTbl)。
以下代码错误-在第-1行出现错误
Sub UPDATEpa()
'dimensioning Source table (SourceTbl)
' Target table (TargetTbl)
' Target table add row to last row (TargetTblLastRow)
Dim SourceTbl As ListObject
Dim TargetTbl As ListObject
Dim TargetTblLastRow As Variant
On Error GoTo ErrHandler
Set SourceTbl = ActiveSheet.ListObjects("RepeatActivities")
Set TargetTbl = ActiveSheet.ListObjects("Activity")
Set TargetTblLastRow = Ttbl.ListRows.Add
SourceTbl.DataBodyRange.Copy
TargetTblLastRow.Range.PasteSpecial xlPasteValues
Exit Sub
ErrHandler:
MsgBox "An error has occured at line " & i - 1 & " or" & i, , "Error Macro"
End Sub
我可能会以错误的方式进行操作。基于其他帖子,我注意到,VBA需要以特定方式编写,以减少自动复制脚本中的错误。我想知道是否需要检查和复制每个单元格/值?
此外,根据我手动粘贴到作为ListObject的表的经验,公式中复制的公式即使相同,也会引用源表,然后将其强加于目标表的所有现有行中。 我发现在这种情况下,简单的剪切和粘贴宏无法可靠地为我工作。
感谢您的提前帮助,约翰·H
答案 0 :(得分:0)
您没有为变量命名:
Set TargetTblLastRow = TargetTbl.ListRows.Add
不是
Set TargetTblLastRow = Ttbl.ListRows.Add
此外,最好使用正确的类型Dim TargetTblLastRow As ListRow
还有一个Option Explicit
为什么很好的例子...