如何:允许用户从另一个excel实例粘贴单元格(Ctrl+;V,…),但仅粘贴值
随进度编辑 亲爱的社区: 我正在处理一个大的excel文件,为我和我的同事做一些计算。因为计算数据很多,并且是在范围(如“A1:H8”)中输入的,而不是单个单元格(如“A1”、“C1”、…),所以我希望用户能够将数据从相同或其他excel实例复制到我的文件中 问题(已编辑): 问题是,仅粘贴单元格就可以格式化目标单元格(即使它们受到格式化保护),必须避免这种情况。我搜索了很多在线讨论,最后编写了自己的代码,可以在同一个excel实例中的两个excel文件之间进行复制和粘贴。遗憾的是,如果我从另一个实例复制单元格,它就不起作用了 代码: 这是我在“ThisWorkbook”中使用的代码:如何:允许用户从另一个excel实例粘贴单元格(Ctrl+;V,…),但仅粘贴值,excel,vba,Excel,Vba,随进度编辑 亲爱的社区: 我正在处理一个大的excel文件,为我和我的同事做一些计算。因为计算数据很多,并且是在范围(如“A1:H8”)中输入的,而不是单个单元格(如“A1”、“C1”、…),所以我希望用户能够将数据从相同或其他excel实例复制到我的文件中 问题(已编辑): 问题是,仅粘贴单元格就可以格式化目标单元格(即使它们受到格式化保护),必须避免这种情况。我搜索了很多在线讨论,最后编写了自己的代码,可以在同一个excel实例中的两个excel文件之间进行复制和粘贴。遗憾的是,如果我从另一
Sub-PasteValuesOnly()
'如果在命名工作表中粘贴单元格,则仅粘贴值
'链接到宏菜单选项中的Ctrl+V
关于错误转到错误处理程序
作为射程的弱小目标
设定目标=选择
如果Target.Parent.Name为“Table1”,则
选择特别的
其他的
Selection.Paste特殊粘贴:=xlPasteValues
如果结束
错误处理程序:
出口接头
端接头
系统:
- 视窗7
- Excel 2010
UndoList=Application.commandbar(“标准”).Controls(“&Undo”).List(1)
出现错误时该怎么办,这也会很有帮助。
否则,我希望每个解决方案,让我的用户像以前一样粘贴,但防止他们在粘贴时格式化单元格
先谢谢你
拉斯皮马努经过长时间的互联网搜索,我在微软论坛上找到了。她的代码很简单,适用于CTRL+C/CTRL+V、在右键单击菜单上复制和粘贴、拖放,甚至两个excel实例 因为它从每一个单元格更改开始,然后返回到更改过的单元格或范围,所以我根据自己的需要对其进行了轻微的优化。现在,手动输入列表的用户不必每次按“enter”两次,他们希望进入下面的下一行 假设,标准用户通常会复制和粘贴,如果有一系列数据,他或她不想重新键入,我更改了代码,因此只有在更改了多个单元格时,模块子模块才会被激活(见下文) 解决方案: 在每个工作表中,必须防止格式化(修改):
Private子工作表\u更改(ByVal目标作为范围)
'更改范围时激活格式保护
如果Target.Cells.Count>1,则“如果更改了多个单元格…”。。。
调用工作表_Change_Protected(目标)“…激活保护
如果结束
端接头
在模块中(未修改):
子工作表\u更改\u受保护(ByVal目标作为范围)
'通过撤消粘贴并粘贴值,防止用户在单元格格式中随意擦除
唐娜·兰迪2018年11月26日
'可免费复制-感谢您的帽尖:)
Dim SavedVal作为变体
关于错误GoTo ErrHan
'保存粘贴的值供以后使用
SavedVal=Target.Value
'关闭事件以防止无限循环
Application.EnableEvents=False
'撤消用户的粘贴
应用程序。撤消
'设定目标值
Target.Value=SavedVal
错误退出:
'记住重新启用事件
Application.EnableEvents=True
出口接头
二郎:
恢复错误退出
端接头
非常感谢你,唐娜·兰迪请看:非常感谢您提供的链接,但我已经知道了,无法让它工作。我会尽快再试一次。你对修改我的代码还有什么想法吗?我又试了一次。。。起初,我建立了一个新文件,只在“ThisWorkbook”中输入了Siddharth Rout的代码I。之后,我在“Sheet1”中尝试了代码II,也在一个新文件中。这两种选择都不起作用。也许是因为我的Excel 2010。调试时,它在
UndoList=Application.commandbar(“标准”)控件(“&Undo”).List(1)
处停止。你能帮我把它开起来吗?