批量修改多个工作簿

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

]

发表于 2011-10-26 15:48:04 |只看该作者|倒序浏览

批量修改多个工作簿可同时对许多工作簿同时进行修改。

有时,我们有许多相同格式的数据文件,如果需要对这些数据文件进行相同格式或内容的修改,这时,如果一个一个打开工作簿再修改的话,那么操作起来即费时,又容易出错。

我们可以使用VBA来解决批量修改多个工作簿的问题。什么我不懂VBA。其实不难,不懂VBA也没关系。如果你不懂VBA,那么只要仔细看,只有一个地方是需要你自己改的。其它的只管照抄就行了。开始吧!

那么如何批量修改多个工作簿呢

我们整理这样的思路:

1、能不能让Excel自动打开每一个工作簿,修改完成后,再关闭保存

2、Excel如何知道我要修改的这些工作簿和修改内容呢

3、是同时打开这些工作簿修改呢;还是一次打开一个工作簿后,在每一个工作表中修改保存,然后再打开别一个修改保存

下面我们提供这样一种批量修改多个工作簿的办法:

1、一次提供给Excel所有要修改的工作簿

2、每次打开一个工作簿后,在每一个工作表中修改后保存关闭,再打开另一个修改,直至批量修改所有指定的多个工作簿。

批量修改多个工作簿的操作步骤如下:

1、打开VBE代码编辑器,打开的方法参照这两个页面的介绍Excel2003打开代码编辑器、Excel2007打开代码编辑器

2、在右侧的窗口中输入:

1.Public strPath(1000) As String

2.Public strBookName(1000) As String

复制代码

这两个数组用来保存要批量修改多个工作簿的路径和文件名称,因为我们在后面要用到,所以采用Public关键字,定义公用变量。

3、接着在右侧的窗口中输入:

1.Public Function OpenExcelFile(nFileNum As Integer) As String

2. Dim nCount As Integer

3. For nCount = 1 To nFileNum

4.strPath(nCount) = (fileFilter:="Microsoft

Excel(*.xls), *.xls,Microsoft Excel(*.xlsx), *.xlsx")

5.If strPath(nCount) = "False" Then

6. MsgBox "Excel文件错误", vbCritical

7. Exit Function

8.End If

9. Filename:=strPath(nCount), UpdateLinks:=0,

ReadOnly:=False

10.strBookName(nCount) =

11. Next nCount

12.End Function

复制代码

这个函数用来循环打开指定的Excel文件。

4、接着在右侧的窗口中输入:

1.Sub ModifyFiles()

2. Dim vFileNum As Variant

3. vFileNum = Trim(InputBox("请输入打开文件的数量(1-1000):

"))

4.If vFileNum < 1 Or vFileNum > 1000 Then

5.MsgBox "数量错误", vbCritical

6.Exit Sub

7.End If

8.

9. OpenExcelFile (vFileNum)

10. Dim nCountFile As Integer

11. For nCountFile = 1 To vFileNum

12.If strPath(nCountFile) = "False" Then

13.Exit Sub

14.End If

15. Next nCountFile

16.

17. = False

18. For nCountFile = 1 To vFileNum

19.Workbooks(strBookName(nCountFile)).Activate

20.Dim sht As Worksheet

21.For Each sht In Worksheets

22. '更改这一行代码在所有的工作表内修改。

23. sht.[A1] = 1

24.Next

25.Workbooks(strBookName(nCountFile)).Close True

26. Next nCountFile

27. = True

28.

29. MsgBox "完成!", vbInformation

30.End Sub

复制代码

这个函数用来批量修改多个工作簿,一次打开一个工作簿后,在每一个工作表中修改保存、然后再打开别一个修改保存,直至批量修改所有指定的多个工作簿,完成后提示。其中上面代码的第23行:

1.sht.[A1] = 1

复制代码

即是修改的代码,这个代码的意思是A1单元格的值是1。

其它的代码都不需要管,只需要把你要在每个工作簿的工作表中修改的内容,替换掉这个代码即可。比如B1单元格的内容是“Excel伙伴天下”,可以改成这样:

1.sht.[B1] = "Excel伙伴天下"

复制代码

那么所有的工作簿中工作表的B1单元格的内容就被批量修改为“Excel伙伴天下”。5、将光标定位在你已经替换好的要批量修改多个工作簿的代码处,按F5键,运行程序。Excel提示你要一次修改多少个文件,然后依次打开这些文件,如果你打开的文件数量和输入的数量相等,Excel就开始批量修改多个工作簿;否则Excel退出,什么也不做。

6、批量修改多个工作簿完成后,Excel给出完成提示,指定的文件即完成指量修改。

注意:代码中的汉字如果复制到VBA代码编辑器中是乱码,那么在对应代码处手工输入中文,这样在代码运行时,你可以看到Excel给出的提示。

批量修改多个工作簿的问题

关于上面批量修改多个工作簿代码,如果我要一次修改1000文件,我不是要打开1000次文件,这也是挺累人的

另外,如果我要修改的文件超过1000个呢

还有,从C5:C10的单元格区域要批量修改,我一个一个写么有没有更好的办法

还有,我只想在这些文件的第一个工作表中修改,也就是批量修改多个工作簿的第一个工作表,这个怎么改呢

......

相信这些都不是问题,当你把前面的都弄明白了,应该就知道了要改什么地方,才能达到你要批量修改多个工作簿的目的。

如何, 工作, 工作表, 多, 编辑器

相关文档
最新文档