无法使用VBA粘贴到受保护的工作表中,但可以手动粘贴
我编写了一个宏,它可以将一系列数据从一个工作簿复制到另一个工作簿中。另一个工作簿中的工作表受密码保护,但如果我手动复制并通过,它允许我这样做。但是,当我尝试将其写入宏时,它将不允许粘贴 目前的代码如下:无法使用VBA粘贴到受保护的工作表中,但可以手动粘贴,vba,excel,Vba,Excel,我编写了一个宏,它可以将一系列数据从一个工作簿复制到另一个工作簿中。另一个工作簿中的工作表受密码保护,但如果我手动复制并通过,它允许我这样做。但是,当我尝试将其写入宏时,它将不允许粘贴 目前的代码如下: Sub COPYT() ' ' COPYT Macro Range("B2:U109").Select Selection.Copy Workbooks.Open Filename:= _ "_FileName_.xls" Windows("_F
Sub COPYT()
'
' COPYT Macro
Range("B2:U109").Select
Selection.Copy
Workbooks.Open Filename:= _
"_FileName_.xls"
Windows("_FileName_.xls").Activate
Range("H10").Paste
End Sub
当我按原样运行宏时,会得到一个
运行时错误“438”:“对象不支持此属性或方法”
调试器显示问题出在最后一行范围(“H10”)。粘贴
我不能取消对工作表的保护(合规性),我显然可以通过运行宏然后按CTRL+V来解决这个问题,但是(因为这允许我粘贴…),但我更希望这是自动化的。由于工作表受到保护,是否需要为“粘贴”命令使用不同的语法
谢谢粘贴是工作表的一种方法,而不是范围。试试这个。我假设了图纸参考,但您可能需要调整
Sub COPYT()
Dim wb As Workbook
Set wb = Workbooks.Open(Filename:="_FileName_.xls")
wb.Sheets("compliance").unprotect
ThisWorkbook.Sheets(1).Range("B2:U109").Copy wb.Sheets("compliance").Range("H10")
wb.Sheets("compliance").protect
End Sub
嗨,SJR。谢谢,但这不起作用,因为工作表不仅仅是受保护的,上面还有密码,就像我上面说的,我无法解除工作表的保护。好的,对不起,没有正确阅读您的问题。你知道它是如何被保护的吗?你不能因为没有密码而取消对它的保护吗?没错,没有密码。我可以输入一些代码来打开它,但由于公司的合规性,我真的不想这样做……除非UserInterfaceOnly已设置为True,否则我认为您无法粘贴到受保护的工作表。有人告诉您密码是一个很好的理由?如果工作表的Range属性受到保护,您是否允许访问它?如果您真的愿意,您可以使用SendKeys
模拟复制粘贴操作。手动复制/粘贴时,您使用的范围是否与宏相同?是的,所有操作都相同。事实上,如果我让宏失败,那么我可以直接按CTRL+V键,它就可以为我完成任务。我不明白如果工作表受到保护,如何使用CTRL+V键进行粘贴。我也不明白。。。。