日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

vba单元格批量赋值,EXCEL——VBA对文件夹下所有表格的特定单元格赋值

發布時間:2024/9/15 编程问答 118 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vba单元格批量赋值,EXCEL——VBA对文件夹下所有表格的特定单元格赋值 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

image

不知道大家有沒有遇到過這種情況,一個文件夾下有很多Excel文件,每個文件里面一個或多個表都有一個同樣的單元格,比如自己的名字啊、生日啊之類的。這個時候如果要改動這個單元格的內容我們需要一個個改動,就非常麻煩。這個時候我們可以通過VBA的方式來解決這個問題。。

image.png

如上圖,我們這個文件夾下有兩個表格,每個表格中都有幾個sheet,這幾個sheet中有幾乎都有一個單元格內容如下:

image.png

我們現在要把這個文件夾下所有EXCEL表里面所有sheet中的這個李明后面的內容改成17歲,應該怎么改呢?

Sub 遍歷替換()

Dim FindRng As Range

Dim temp

lookingname = "李明"

Price = 22

Application.ScreenUpdating = False

Dim Filename, wb As Workbook, Sht As Worksheet

Filename = Dir(ThisWorkbook.Path & "\*.xlsm")

MsgBox ThisWorkbook.Path

MsgBox Filename

Do While Filename <> ""

If Filename <> ThisWorkbook.Name Then

fn = ThisWorkbook.Path & "\" & Filename

Set wb = Workbooks.Open(fn)

'Set Sht = wb.Worksheets(1)

For Each temp In wb.Worksheets

Set FindRng = temp.UsedRange.Find(lookingname, lookat:=xlWhole)

If Not FindRng Is Nothing Then FindRng.Offset(, 1) = Price

Next

'Set FindRng = Sht.UsedRange.Find(lookingname, lookat:=xlWhole)

'If Not FindRng Is Nothing Then FindRng.Offset(, 1) = Price

wb.Close True

End If

Filename = Dir

Loop

Application.ScreenUpdating = True

End Sub

利用這段代碼,可以將同一文件夾下的其他表格(非當前執行代碼的表格)中所有sheet中的“李明”后面的單元格內容替換。極大的提高了效率,尤其在文件很多的情況下。

下面我們來對代碼進行一下講解

Filename = Dir(ThisWorkbook.Path & "\*.xlsm")

用Dir來對當前表格下的所有xlsm進行遍歷,下面這個循環便是對每個表格進行操作

Do While Filename <> ""

If Filename <> ThisWorkbook.Name Then

fn = ThisWorkbook.Path & "\" & Filename

Set wb = Workbooks.Open(fn)

'Set Sht = wb.Worksheets(1)

For Each temp In wb.Worksheets

Set FindRng = temp.UsedRange.Find(lookingname, lookat:=xlWhole)

If Not FindRng Is Nothing Then FindRng.Offset(, 1) = Price

Next

'Set FindRng = Sht.UsedRange.Find(lookingname, lookat:=xlWhole)

'If Not FindRng Is Nothing Then FindRng.Offset(, 1) = Price

wb.Close True

End If

Filename = Dir

Loop

其中

fn = ThisWorkbook.Path & "\" & Filename

Set wb = Workbooks.Open(fn)

'Set Sht = wb.Worksheets(1)

For Each temp In wb.Worksheets

Set FindRng = temp.UsedRange.Find(lookingname, lookat:=xlWhole)

If Not FindRng Is Nothing Then FindRng.Offset(, 1) = Price

Next

'Set FindRng = Sht.UsedRange.Find(lookingname, lookat:=xlWhole)

'If Not FindRng Is Nothing Then FindRng.Offset(, 1) = Price

wb.Close True

這一段代碼是將文件夾下每個文件都打開然后對其中的sheet進行遍歷,并通過

Set FindRng = temp.UsedRange.Find(lookingname, lookat:=xlWhole)

If Not FindRng Is Nothing Then FindRng.Offset(, 1) = Price

這兩句代碼來查找特定單元格并賦值。最后一個接一個打開又關閉workbook來達到替換所有單元格的效果。。。

最后,我們就可以看到所有的“李明”后面的單元格,都改變成了代碼中指定的內容:

image.png

其他sheet也是已經更改,就不一一截圖了~~

就是這樣,希望能幫到大家,謝謝~~

總結

以上是生活随笔為你收集整理的vba单元格批量赋值,EXCEL——VBA对文件夹下所有表格的特定单元格赋值的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。