多个excel文件批量需改vb代码

大概有1000个EXCEL文件,每个文件的VB代码都是一样的,需要增加一句代码,或者需改一段代码能否批量需改?以前都是一个一个复制的,太费事费力了!(EXCEL保存的是“... 大概有1000个EXCEL文件,每个文件的VB代码都是一样的,需要增加一句代码,或者需改一段代码能否批量需改?以前都是一个一个复制的,太费事费力了!(EXCEL保存的是“启用宏”格式)
object.Import(filename) As
VBComponent

这个怎么用?
展开
 我来答
庆年工坊
推荐于2016-07-16 · 知道合伙人互联网行家
庆年工坊
知道合伙人互联网行家
采纳数:4233 获赞数:8928

向TA提问 私信TA
展开全部

首先要在选项-信任中心-宏设置里勾选信任VBA对工程对象的访问

Sub AddCode2()
  pth = "D:\My Documents\" '在这里输入完整路径
  fn = Dir(pth & "*.xlsm")
  Do While fn <> ""
    Set wb = Workbooks.Open(pth & fn)
    With wb.VBProject.VBComponents("模块1").CodeModule '在这里修改代码所在的模块名
      .InsertLines 2, "msgbox ""Hello""" '在这里修改插入的行号和代码
      .InsertLines 3, "msgbox ""byebye""" '如果代码有多行就这样继续
    End With
    wb.Close True
  Loop
End Sub
追问
没有成功啊!老是循环打开文件。——测试了几个小时,才发现这个代码只能循环在一个文件里添加代码,无限循环……,不能将整个文件夹里的所有文件都添加!!

因为所有文件里的程序都是一样的,就是你之前给我的,能否把这个文件单独放在一个文件,然后用其他文件调用(打开文件就可以直接调用),这样我就直接修改那个程序文件,就简单多了。
追答
Sub AddCode2()
  pth = "D:\My Documents\" '在这里输入完整路径
  fn = Dir(pth & "*.xlsm")
  Do While fn <> ""
    Set wb = Workbooks.Open(pth & fn)
    With wb.VBProject.VBComponents("模块1").CodeModule '在这里修改代码所在的模块名
      .InsertLines 2, "msgbox ""Hello""" '在这里修改插入的行号和代码
      .InsertLines 3, "msgbox ""byebye""" '如果代码有多行就这样继续
    End With
    wb.Close True
    fn = Dir
  Loop
End Sub

不好意思,一时大意少写了一句

百度网友e3dfd2057
2015-11-16 · TA获得超过137个赞
知道小有建树答主
回答量:132
采纳率:0%
帮助的人:40.2万
展开全部
可以试试下面这个方法,可以把代码导入到EXCEL文件中。
object.Import(filename) As
VBComponent
#这个方法我没有用过,我只做过把代码导出。导入没有做过,不过应该是可以的。

如果VB代码是一样的,每一个文件都有代码,这样管理本身是一个问题。
应该考虑把这个代码独立出来做一个XLA文件,或者别的。这样每次有修改就只要改一个文件就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式