如何利用VBA批量更改Excel文件的内容

心得(5):利用VBA批量更改Excel文件的内容
问题:因为接受的所有Excel文件都是相同格式的,但是有个单元格的内容就是需要,主办方来更改,如下所示:
在这里插入图片描述
获奖级别,得由主办方来更改,但是如果一个一个打开的话这样就很麻烦,(如何把所有文件分为,一等奖,二等奖等各个文件,暂时还不知道,我是通过一个个来排除的)在把他们分开之后,直接利用VBA快速更改,

更改步骤:

  1. 首先还是环境配置,避免出现差错如下所示:
    在这里插入图片描述
  2. 然后开始循环每个文件,就像之前的文件一样
  3. 然后打开每个文件后,更改特定的内容:
    在这里插入图片描述
    一样要记得保存文件,VBA退出文件是不会帮你自动保存的
  4. 不断循环,然后退出程序即可

源码如下:

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
发布了41 篇原创文章 · 获赞 6 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_42224330/article/details/100559421
今日推荐