一个excel文档里包含多个sheet,如何快速定义所有表都使用同一个宏?

除了将宏一个个复制到每一个表以外,有没有什么方法一次编辑就搞定?... 除了将宏一个个复制到每一个表以外,有没有什么方法一次编辑就搞定? 展开
 我来答
feiyun
2014-07-15 · 知道合伙人教育行家
feiyun
知道合伙人教育行家
采纳数:2687 获赞数:7903
从事培训工作12年 中级经济师

向TA提问 私信TA
展开全部

有多种方法,如果这个宏只需要在这个工作簿存在时才使用,那么就新建一个模块放进去,或者放到thisworkbook下(图1),如果希望在这台电脑上任意工作簿都可以用,那么就放到个人宏工作簿下(图2)。

与雨听
推荐于2016-10-14 · 超过51用户采纳过TA的回答
知道小有建树答主
回答量:111
采纳率:0%
帮助的人:32.8万
展开全部
录制的宏,一般都是在工作簿的“模块”下,调用宏是不受工作表的限制的。

但是,由于录制时操作或某些设置的缘故,生成的代码有时是有“Sheet1."这样的对象指定。

对于这样的代码,自然不能应用到其他工作表中。

所以,要想让宏在每张表都能用,看一下该宏的代码,把”Sheet1"之类的内容,改为“ActiveSheet"即可。
追问
比如这样一个宏呢?——
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
For i = 1 To 3
Target.Speak
Next
End Sub

没有sheet1这样的字样。
但是我想所有的表都用这样一个简单的宏,每次都手工复制粘贴,虽然工作量不大但是感觉比较蠢。
追答

首先,这已经不是常规意义的”宏“了


而且,因为Sub过程是Private的,所以,也不可能被其他函数调用。


如果想要让所有表共用,并且是响应SelectionChange事件,那么,你可以在VBA中双击

"ThisWOrkbook”,在弹出的窗口中选择SelectionChage后,将代码写在里面,即可。


本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式