【发布时间】:2021-09-17 10:09:59
【问题描述】:
我已经使用数据表上为每个寄存器保存的数据自动化了寄存器,这些数据通过 VBA 馈送到“打印输出”表。
第一次运行有效。当我选择另一个时,我得到
'运行时错误'1004'粘贴范围类的特殊方法失败'
如果我清除错误,它将工作一次,然后在第二次尝试时失败。
阅读 MS 帮助(我现在找不到)它说范围没有正确引用,因此在程序完成之前无法使用它。我试着确保 cutcopymode 是假的。我尝试添加一个额外的副本。 PS 值使用工作表上的不同单元格,最后尝试保存工作表以查看是否清除了引用。
我有两个版本,一个是记录的版本,另一个是尝试引用所有范围的版本(均已附上)。该宏继承于已经选择数据表的宏
Sub POP_PRINT_OUT()
'
' Populate Print Out Sheet with Data from Route Sheet
Application.ScreenUpdating = False
ActiveSheet.Unprotect
Range("A80:L135").Select
Selection.Copy
Sheets("Print Out").Select
ActiveSheet.Unprotect
Sheets("Print Out").Range("A19").Select '# 1004 Error with P.S values below #
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("A14").Select
Application.CutCopyMode = False
'ActiveWorkbook.Save
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Application.ScreenUpdating = True
End Sub
Sub POP_PRINT_OUTxxxx()
'
' Populate Print Out Sheet with Data from Route Sheet
Dim sh As Worksheet
Dim rng1 As Range
Dim rng2 As Range
Set wb = ThisWorkbook
Set sh = wb.Sheets("Print Out")
Set rng1 = ActiveSheet.Range("A80:L135")
Set rng2 = sh.Range("A19:L74")
Application.ScreenUpdating = False
ActiveSheet.Unprotect
rng1.Select
Selection.Copy
sh.Select
ActiveSheet.Unprotect
rng2.Select '# 1004 Error with P.S values below #
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("A14").Select
Application.CutCopyMode = False
'ActiveWorkbook.Save
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Application.ScreenUpdating = True
End Sub
【问题讨论】:
标签: excel vba runtime-error excel-2010