excel批量修改多个工作簿文件中同一位置的数据
你是不是也常常面对成堆的Excel文件需要批量修改而抓狂?是不是每次都要手动去一个个文件里修改同样的数据,感觉像在坐牢?哈哈,别担心,今天就教大家一招让电脑替你搞定这些麻烦事儿!
具体问题
当你需要在成百上千个Excel文件中修改同一个位置的数据时,手动操作不是显得特别low吗?而且出错的概率也极高。
解决方案
只需要简单三步:
1. 备份好你的文件,避免误操作
2. 把以下代码复制到VBA编辑器
3. 执行代码,坐等电脑帮你搞定
代码解析 代码就像一个聪明的机器人,自动完成这些重复性任务:
- 自动遍历文件夹里的所有Excel文件
- 忽略正在运行的这个脚本文件
- 定位到指定的单元格G27和G54
- 修改数据格式
- 自动保存并关闭文件
额外扩展
1. 这代码其实是个很好的学习样本,理解了它的逻辑后,你可以根据需要修改参数,比如
- 改变要修改的单元格位置
- 调整数据格式
- 增加更多判断条件
2. 如果你的文件夹结构较深,可以增加文件夹遍历功能
3. 可以根据需要增加错误处理,避免死机
这招是不是特别实用?以后遇到类似重复性操作,完全可以自己写个小程序来搞定,让工作更高效更优雅!
他给的工作簿中,要修改两个位置的数据,分别为单元格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过程,批量修改文件夹中的工作簿,达到所示的效果。
代码图片版如下: