excel批量修改多個(gè)工作簿文件中同一位置的數(shù)據(jù)
excel批量修改多個(gè)工作簿文件中同一位置的數(shù)據(jù)
最近,有位朋友咨詢:“有很多Excel文件是從軟件中直接生成的,有些數(shù)據(jù)**.**KN是軟件自動(dòng)填寫上去的,但是因?yàn)閿?shù)據(jù)單位的問(wèn)題,每次都需要將其手動(dòng)更改為***.*KN。一般來(lái)說(shuō),都是幾十個(gè)這樣的文件,手動(dòng)修改的工作量很大,所以想請(qǐng)教一下,看有沒(méi)有簡(jiǎn)便的方法。”
他給的工作簿中,要修改兩個(gè)位置的數(shù)據(jù),分別為單元格G27和G54,其格式都是**.**KN,將其修改為***.*KN。如下所示。
使用VBA可以完成上述任務(wù)。代碼如下:
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)
‘要修改的單元格
‘可根據(jù)實(shí)際調(diào)整
Set rng1 = Range(“G27”)
Set rng2 = Range(“G54″)
‘傳遞到修改值的子過(guò)程
ModifyDatas rng1, rng2
‘關(guān)閉并保存工作簿
Wb.Close True
End If
‘獲取下一個(gè)工作簿
strName = Dir
Loop
Application.ScreenUpdating = True
End Sub
‘修改所接收的單元格中的值
Sub ModifyDatas(rng1 As Range,rng2 As Range)
On Error Resume Next
‘加一個(gè)判斷條件,防止每運(yùn)行一次就更改單元格值
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過(guò)程遍歷工作簿所在文件夾中除本工作簿以外的所有工作簿,將工作簿中當(dāng)前工作表單元格G27和G54中的值進(jìn)行修改,關(guān)閉并保存修改后的工作簿。
運(yùn)行DatasArrange過(guò)程,批量修改文件夾中的工作簿,達(dá)到所示的效果。
代碼圖片版如下:
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。