excel - VBA; 仅在包含它的工作簿中运行宏(覆盖默认快捷方式)
问题描述
我正在用一个宏覆盖粘贴快捷方式 (ctrl-v) 以仅粘贴值。但是,我只希望这发生在宏所在的实际工作簿中。
这是我的代码:
Sub paste_values_only()
If Not ActiveWorkbook Is ThisWorkbook Then Exit Sub
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
它似乎有效,除了当我现在在另一个工作簿中 ctr-v 时,它根本不会粘贴。我希望 ctrl-v 像在另一个工作簿中的正常粘贴操作一样工作。
更糟糕的是......有多个工作簿将具有此粘贴覆盖宏。
如果有一种更简单的方法可以将某个工作簿中的粘贴限制为仅值,我也很高兴听到它!我只是想阻止我的同事粘贴格式/条件规则/公式/等。进入本工作簿。
解决方案
在更多的肘部油脂之后,我得到了解决方案。不是很优雅,但它有效:
由于需要具有此粘贴保护的所有文件的名称中都有“存储”,因此我能够将粘贴限制限制为这些工作簿。对 else 子句使用Selection.PasteSpecial
没有功能我解决了这个问题..
Sub paste_values_only()
Dim wbname As String
wbname = ActiveWorkbook.Name
If wbname Like "*storage*" Then
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Else
Selection.PasteSpecial
End If
End Sub
推荐阅读
- database - 你如何使用 redis-benchmark 工具来填满一个 redis 集群内存?
- javascript - 如何有条件地向一个类型添加多个值?
- nuxt.js - 如果没有缓存,则重定向到离线页面并使用 @nuxtjs/pwa 从离线页面重定向到主页
- html - 响应式移动设计html
- angular - 如何使用其他现有的角度组件在 Angular js 中添加网格
- wix - 使用 wix bundle 部署外部负载
- sql - DISTINCT 函数在我的 SQL 查询中不起作用
- frontend - 前端产品类别中的产品属性
- python-unittest - unittest 的路径设置
- java - 仅在调试模式下找到匹配