预览加载中,请您耐心等待几秒...
1/3
2/3
3/3

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

HYPERLINK"http://www.excel-partner.com/bbs/thread-131-1-1.html"批量修改多个工作簿HYPERLINK"http://www.excel-partner.com/bbs/thread-131-1-1.html"\o"您的朋友访问此链接后,您将获得相应的积分奖励"[复制链接] 发表于2011-10-2615:48:04|HYPERLINK"http://www.excel-partner.com/bbs/forum.php?mod=viewthread&tid=131&page=1&authorid=2"只看该作者|HYPERLINK"http://www.excel-partner.com/bbs/forum.php?mod=viewthread&tid=131&extra=page%3D1&ordertype=1"倒序浏览 批量修改多个工作簿可同时对许多工作簿同时进行修改。有时,我们有许多相同格式的数据文件,如果需要对这些数据文件进行相同格式或内容的修改,这时,如果一个一个打开工作簿再修改的话,那么操作起来即费时,又容易出错。我们可以使用VBA来解决批量修改多个工作簿的问题。什么?我不懂VBA。其实不难,不懂VBA也没关系。如果你不懂VBA,那么只要仔细看,只有一个地方是需要你自己改的。其它的只管照抄就行了。开始吧!那么如何批量修改多个工作簿呢?我们整理这样的思路:1、能不能让HYPERLINK"http://www.excel-partner.com/"\t"_blank"Excel自动打开每一个工作簿,修改完成后,再关闭保存?2、Excel如何知道我要修改的这些工作簿和修改内容呢?3、是同时打开这些工作簿修改呢;还是一次打开一个工作簿后,在每一个工作表中修改保存,然后再打开别一个修改保存?下面我们提供这样一种批量修改多个工作簿的办法:1、一次提供给Excel所有要修改的工作簿2、每次打开一个工作簿后,在每一个工作表中修改后保存关闭,再打开另一个修改,直至批量修改所有指定的多个工作簿。批量修改多个工作簿的操作步骤如下:1、打开VBE代码编辑器,打开的方法参照这两个页面的介绍HYPERLINK"http://www.excel-partner.com/17.html"\t"_blank"Excel2003打开代码编辑器、HYPERLINK"http://www.excel-partner.com/36.html"\t"_blank"Excel2007打开代码编辑器2、在右侧的窗口中输入: PublicstrPath(1000)AsString PublicstrBookName(1000)AsString 复制代码 这两个数组用来保存要批量修改多个工作簿的路径和文件名称,因为我们在后面要用到,所以采用Public关键字,定义公用变量。3、接着在右侧的窗口中输入: PublicFunctionOpenExcelFile(nFileNumAsInteger)AsString DimnCountAsInteger FornCount=1TonFileNum strPath(nCount)=Application.GetOpenFilename(fileFilter:="MicrosoftExcel(*.xls),*.xls,MicrosoftExcel(*.xlsx),*.xlsx") IfstrPath(nCount)="False"Then MsgBox"Excel文件错误",vbCritical ExitFunction EndIf Workbooks.OpenFilename:=strPath(nCount),UpdateLinks:=0,ReadOnly:=False strBookName(nCount)=ActiveWorkbook.Name NextnCount EndFunction 复制代码 这个函数用来循环打开指定的Excel文件。4、接着在右侧的窗口中输入: SubModifyFiles() DimvFileNumAsVariant vFileNum=Trim(InputBox("请输入打开文件的数量(1-1000):")) IfvFileNum<1OrvFileNum>1000Then MsgBox"数量错误",vbCritical ExitSub EndIf OpenExcelFile(vFileNum) DimnCountFileAsInteger FornCountFile=1TovFileNum IfstrPath(nCountFile)="False"Then ExitSub EndIf