作为VBA的新手,我搜索了一些我可以结合起来尝试解决问题的代码。我正在构建一个“任务跟踪器”,它使用任务的目标表(TargetTbl)来显示动态甘特图。Ttbl可以手动修改,用于日常任务管理,还可以每年从重复出现的大头针的源表(SourceTbl)中进行更新,以减少工作量。我的目标是使用ListObjects将源表(SourceTbl)复制到目标表(TargetTbl)的底部。
以下代码错误-第-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的表中的经验,复制的in公式,即使相同,也会引用源表,然后将其应用于目标表中的所有现有行。我发现在这种情况下,简单的剪切和粘贴宏并不能可靠地为我工作。
提前感谢你的帮助,约翰·H。
发布于 2018-07-24 14:18:57
你有一个变量没有命名:
Set TargetTblLastRow = TargetTbl.ListRows.Add不
Set TargetTblLastRow = Ttbl.ListRows.Add此外,最好使用正确的类型Dim TargetTblLastRow As ListRow
还有另一个Option Explicit优秀的例子...
https://stackoverflow.com/questions/51491134
复制相似问题