首页officeexcel正文

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

强国说学习2022-06-21303excel常用函数excel常见问题excel技巧Excel教程

最近,有位朋友咨询:“有很多Excel文件是从软件中直接生成的,有些数据**.**KN是软件自动填写上去的,但是因为数据单位的问题,每次都需要将其手动更改为***.*KN。一般来说,都是几十个这样的文件,手动修改的工作量很大,所以想请教一下,看有没有简便的方法。”

他给的工作簿中,要修改两个位置的数据,分别为单元格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过程,批量修改文件夹中的工作簿,达到所示的效果。

强国说www.qiangguoshuo.com

代码图片版如下:

如想转载该文章请注明出处:强国说学习-qiangguoshuo.com
强国说学习

转载声明:本站发布文章及版权归原作者所有,转载本站文章请注明文章来源!

本文链接:https://www.qiangguoshuo.com/excel/16032.html