Excel 使用 VBA 第二次尝试打印时出现运行时错误“1004”粘贴范围类的特殊方法失败

克里斯·费舍尔

(Excel 2010)您好,我使用数据表上为每个寄存器保存的数据自动化了一个寄存器,这些数据通过 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
克里斯托弗·韦伯

似乎没有保护纸张会导致问题。
避免使用 Select总是一个好主意
考虑这个缩短的版本,改变你需要的东西,看看它是否更好用。

...
Set rng2 = sh.Range("A19:L74")

sh.Unprotect
rng1.Copy
rng2.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
sh.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

end sub

如果sh.Unprotect在复制和粘贴之间移动,您可以看到错误再次返回。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Excel VBA授权在第一次运行时失败,第二次运行良好

Excel VBA - 使用 .ModifyAppliesTo 和运行时错误 1004(尝试插入太长的字符串时出现问题?)

使用Excel-VBA宏从工作簿复制时出现运行时错误'1004'

VBA Excel 到 Word - 在第二次循环运行时另存为 pdf 失败

VBA运行时错误1004:尝试在Excel 2013中创建表时,对象_Global的方法范围失败

第二次打开表单会引发运行时错误 9 Excel VBA

应用程序打开时出现Microsoft Excel VBA错误运行时1004,导致无休止的错误循环,导致无法使用Excel

Excel VBA和C#DLL:实例化WinForms对象只能执行一次。在第二次尝试时出现错误

Excel VBA shoDataForm运行时错误'1004'Worksheet类的ShowDataForm方法失败

使用VBA从受保护的网站导入Excel中的数据时出现运行时错误438

访问VBA与Excel进行交互,第二次出现错误91

Excel VBA运行时错误1004

Excel VBA宏出现运行时错误'1004'

在Excel数据连接中使用VBA更改命令文本SQL时收到运行时错误(1004)

使用范围时Excel VBA错误1004

使用Excel VBA在工作簿中查找匹配项:运行时错误1004

使用 VBA 粘贴 Excel 行

Excel VBA:运行时错误(对象“范围”的方法“值”失败),但仅在连续运行时

使用excel VBA乘以范围

类的Excel 2010 VBA运行时1004'PasteSpecial方法间歇性失败?

在Excel VBA中删除多个列时出现运行时错误1004

尝试使用Excel vba保存文件时出现错误424

VBA xlPasteValues 在第二次运行时失败

尝试在初始“取消”后或在红色“ X”上关闭后尝试第二次启动时,Excel用户窗体运行时错误

第二次运行VBA代码时,出现“运行时错误462:远程服务器计算机不存在或不可用”

使用VBA粘贴时如何修复运行时错误1004

使用Excel Vba粘贴数据时出错

使用VBA从Excel复制并粘贴到PowerPoint

在Excel中使用VBA复制粘贴