> 文章列表 > excel批量修改多个工作簿文件中同一位置的数据

excel批量修改多个工作簿文件中同一位置的数据

你是不是也常常面对成堆的Excel文件需要批量修改而抓狂?是不是每次都要手动去一个个文件里修改同样的数据,感觉像在坐牢?哈哈,别担心,今天就教大家一招让电脑替你搞定这些麻烦事儿!

具体问题
当你需要在成百上千个Excel文件中修改同一个位置的数据时,手动操作不是显得特别low吗?而且出错的概率也极高。

解决方案
只需要简单三步:
1. 备份好你的文件,避免误操作
2. 把以下代码复制到VBA编辑器
3. 执行代码,坐等电脑帮你搞定

代码解析 代码就像一个聪明的机器人,自动完成这些重复性任务:
- 自动遍历文件夹里的所有Excel文件
- 忽略正在运行的这个脚本文件
- 定位到指定的单元格G27和G54
- 修改数据格式
- 自动保存并关闭文件

额外扩展
1. 这代码其实是个很好的学习样本,理解了它的逻辑后,你可以根据需要修改参数,比如
- 改变要修改的单元格位置
- 调整数据格式
- 增加更多判断条件
2. 如果你的文件夹结构较深,可以增加文件夹遍历功能
3. 可以根据需要增加错误处理,避免死机

这招是不是特别实用?以后遇到类似重复性操作,完全可以自己写个小程序来搞定,让工作更高效更优雅!

excel批量修改多个工作簿文件中同一位置的数据

他给的工作簿中,要修改两个位置的数据,分别为单元格G27和G54,其格式都是.KN,将其修改为*.*KN。如下所示。

使用VBA可以完成上述任务。代码如下:

Sub DatasArrange()

Dim strPath As String

Dim strName As String

Dim Wb As Workbook

Dim rng1 As Range

Dim rng2 As Range

‘获取文件夹路径和工作簿

strPath = ThisWorkbook.Path &””

strName = Dir(strPath &”*.xls*”)

On Error Resume Next

Application.ScreenUpdating = False

‘遍历文件夹中的工作簿

‘代码所在的工作簿除外

Do While strName “”

If strName ThisWorkbook.NameThen

Set Wb = Workbooks.Open(strPath& strName)

‘要修改的单元格

‘可根据实际调整

Set rng1 = Range(“G27”)

Set rng2 = Range(“G54″)

‘传递到修改值的子过程

ModifyDatas rng1, rng2

‘关闭并保存工作簿

Wb.Close True

End If

‘获取下一个工作簿

strName = Dir

Loop

Application.ScreenUpdating = True

End Sub

‘修改所接收的单元格中的值

Sub ModifyDatas(rng1 As Range,rng2 As Range)

On Error Resume Next

‘加一个判断条件,防止每运行一次就更改单元格值

If Mid(rng1, Len(rng1) – 3, 1) ”.” Then

rng1.Value = Left(rng1.Value,Len(rng1.Value) – 2) * 1 & “KN”

End If

If Mid(rng2, Len(rng2) – 3, 1) ”.” Then

rng2.Value = Left(rng2.Value,Len(rng2.Value) – 2) * 1 & “KN”

End If

End Sub

DatasArrange过程遍历工作簿所在文件夹中除本工作簿以外的所有工作簿,将工作簿中当前工作表单元格G27和G54中的值进行修改,关闭并保存修改后的工作簿。

运行DatasArrange过程,批量修改文件夹中的工作簿,达到所示的效果。

代码图片版如下: