心得(5):利用VBA批量更改Excel文件的内容 问题:因为接受的所有Excel文件都是相同格式的,但是有个单元格的内容就是需要,主办方来更改,如下所示: 获奖级别,得由主办方来更改,但是如果一个一个打开的话这样就很麻烦,(如何把所有文件分为,一等奖,二等奖等各个文件,暂时还不知道,我是通过一个个来排除的)在把他们分开之后,直接利用VBA快速更改,
更改步骤:
首先还是环境配置,避免出现差错如下所示: 然后开始循环每个文件,就像之前的文件一样然后打开每个文件后,更改特定的内容: 一样要记得保存文件,VBA退出文件是不会帮你自动保存的不断循环,然后退出程序即可
源码如下:
Sub 批量改名()
Dim mypath As String, myname As String, awbname As String
Dim wbcount As Integer
'关闭excel的刷新
Application.ScreenUpdating = False
'禁止弹出对话框
Application.DisplayAlerts = False
'得到本文件的相对地址
mypath = ActiveWorkbook.Path
'当前工作的excel的文件名
awbname = ActiveWorkbook.Name
'任意打开文件夹下的某一个文件
wbcount = 0
myname = Dir(mypath & "\" & "*.xlsx")
'如果当前的文件名为空的字符串("")表示已经没有更多的文件了跳出循环
Do While myname ""
If myname awbname Then
'打开当前的文件夹
Set wb = Workbooks.Open(mypath & "\" & myname)
wbcount = wbcount + 1
Range("I" & 5).Value = "三等奖"
Range("I" & 5).Font.ColorIndex = 0
'找了很久才找到了这个错误,因为如果不保存的话退出是不会有改变的
wb.save
'关闭文件
wb.Close False
End If
'随机打开本文件夹的另一个文件
myname = Dir
Loop
'结束程序并且恢复之前的操作
MsgBox "一共更改了 " & wbcount & " 个文件"
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
|