Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 复制粘贴仅可见单元格受保护的工作表_Excel_Vba_Office365_Copy Paste_Protected - Fatal编程技术网

Excel 复制粘贴仅可见单元格受保护的工作表

Excel 复制粘贴仅可见单元格受保护的工作表,excel,vba,office365,copy-paste,protected,Excel,Vba,Office365,Copy Paste,Protected,我有下面的宏只粘贴值,我已经协助Ctl+V作为一个快捷方式 Sub PasteasValue() Selection.PasteSpecial Paste:=xlPasteValues End Sub 使用这种方法,最终用户会遇到在隐藏行上粘贴数据的问题,所以我修改了代码,只选择可见的单元格。当过滤器打开时,行被隐藏 Sub PasteasValue() Selection.SpecialCells(xlCellTypeVisible).Select Selection.PasteSp

我有下面的宏只粘贴值,我已经协助Ctl+V作为一个快捷方式

Sub PasteasValue()

Selection.PasteSpecial Paste:=xlPasteValues

End Sub
使用这种方法,最终用户会遇到在隐藏行上粘贴数据的问题,所以我修改了代码,只选择可见的单元格。当过滤器打开时,行被隐藏

Sub PasteasValue()

Selection.SpecialCells(xlCellTypeVisible).Select

Selection.PasteSpecial Paste:=xlPasteValues

End Sub
然而,我的电子表格是受保护的,现在它会给我一个错误,在第一个代码

我尝试使用下面的代码来取消保护和保护工作表,但这不起作用,因为据我所知,当您取消保护工作表时,剪贴板上复制的数据将被删除,这将在粘贴值级别给我一个错误

Sub PasteasValue()

Activesheet.Unprotect "1234"

Selection.SpecialCells(xlCellTypeVisible).Select

Selection.PasteSpecial Paste:=xlPasteValues

Activesheet.Protect "1234"

End Sub
下面是我正在努力实现的目标

  • 复制粘贴为值
  • 仅在可见单元格中粘贴
  • 保护床单
  • 代码应适用于此工作簿中的所有工作表(所有工作表的密码相同)
有什么简单的方法可以实现上述目标吗

请帮忙

谢谢


Rik

您的代码中没有副本。是否尝试将当前选择转换为值,或将剪贴板中的任何内容作为值粘贴到当前选择?一次解决一个问题,首先是保护。当
工作簿\u打开时
事件要求用户输入密码。使用密码取消对每张工作表的保护,并立即使用
UserInterfaceOnly=True
重新应用保护。之后,您的代码可以进行更改,但用户不能。请注意,
UserInterfaceOnly
属性在工作簿关闭时过期。因此,无论何时打开,您都必须重复此练习。@ChrisNeilsen复制操作按正常方式执行,即Ctl+C。因此,我正试图将剪贴板中的任何内容作为值粘贴到当前选择中。@Variatus如果每次都必须重复userinterfaceonly=true的练习,则无法达到此目的打开了。工作簿将在一天内打开5-10次。除非我误解了你的解决方案,否则我认为这是行不通的。代码在大约百分之一秒的时间内不可见地工作。它一天运行多少次并不重要。任何可能出现的问题都会因为你的保护要求而存在。但是,当您想要粘贴数据时,您无法处理这些需求。这就是为什么我建议首先单独处理保护问题。请放心,我所描述的方法是正确的,请记住,您建议的代码将运行得更频繁。