最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

在excel里處理數(shù)據(jù)的VBA代碼

2023-08-01 17:27 作者:新的褪色者  | 我要投稿

有時候在處理excel的數(shù)據(jù)時,其實有很多自己的想法在excel上無法得到實現(xiàn),這就需要用到VBA編程了,從而實現(xiàn)按自己需求進(jìn)行定制化開發(fā)。

VBA(Visual Basic for Applications)是一種編程語言,它是基于 Microsoft Visual Basic 開發(fā)的,可以在 Microsoft Office 套件中的許多應(yīng)用程序中使用,包括

  • Microsoft Excel

  • Microsoft Word

  • Microsoft PowerPoint

  • Microsoft Access

  • Microsoft Outlook

  • Microsoft Project

  • Microsoft Visio

使用 VBA,可以執(zhí)行以下操作:

  1. 編寫自定義宏:VBA 可以在 Microsoft Office 應(yīng)用程序中創(chuàng)建自定義宏,以自動執(zhí)行一系列任務(wù)。

  2. 自動化重復(fù)性任務(wù):使用 VBA,可以編寫腳本來自動執(zhí)行繁瑣的、重復(fù)性的任務(wù),從而提高工作效率。

  3. 增強(qiáng)功能:VBA 可以擴(kuò)展 Microsoft Office 應(yīng)用程序的功能,使其能夠執(zhí)行更多操作。

  4. 自定義用戶界面:使用 VBA,可以創(chuàng)建自定義對話框和用戶界面,以便更好地與用戶交互。

VBA 是一種功能強(qiáng)大的編程語言,但需要一定的編程經(jīng)驗和技能才能充分利用其功能。

我遇到的問題是需要對原word內(nèi)的數(shù)據(jù)進(jìn)行清洗,然后遍歷所有數(shù)據(jù)從而實現(xiàn)提取所需要數(shù)據(jù)的功能。

這里舉例一個表格,如下圖所示:

需要提取這個表格內(nèi)的需要單元格,例如:”抗震設(shè)防類別”, “結(jié)構(gòu)體系”, “建筑功能”等。

當(dāng)在Excel中寫VBA代碼時,可以通過以下步驟在一個區(qū)域內(nèi)查找多個單元格,并將匹配的單元格及其之后的數(shù)據(jù)輸出到電腦桌面的Excel文件中:

  1. 打開Excel文件并按下”Alt + F11″,進(jìn)入Visual Basic for Applications (VBA)編輯器。

  2. 在VBA編輯器中,點(diǎn)擊”插入”,然后選擇”模塊”,在新的模塊中編寫以下VBA代碼:

Sub 導(dǎo)出匹配單元格及數(shù)據(jù)到Excel()
Dim sourceRange As Range
Dim searchValues() As Variant
Dim foundRows As Collection
Dim i As Long, j As Long
Dim desktopPath As String
' 填入要查找的單元格的區(qū)域
Set sourceRange = Range("A2:D9")
' 填入要查找的單元格值,可以添加更多值
searchValues = Array("抗震設(shè)防類別", "結(jié)構(gòu)體系", "建筑功能")
' 初始化集合以保存查找到的行
Set foundRows = New Collection
' 遍歷源區(qū)域查找匹配的單元格
For i = 1 To sourceRange.Rows.Count
For j = 1 To sourceRange.Columns.Count
If IsInArray(sourceRange.Cells(i, j).Value, searchValues) Then
' 將匹配的單元格及其之后的數(shù)據(jù)添加到集合中
foundRows.Add sourceRange.Cells(i, j).Resize(1, sourceRange.Columns.Count - j + 1)
Exit For ' 停止查找當(dāng)前行
End If
Next j
Next i
' 初始化新的Excel工作簿
Dim excelApp As Object
Dim excelWorkbook As Object
Dim excelWorksheet As Object
Set excelApp = CreateObject("Excel.Application")
excelApp.Visible = False ' 設(shè)置為True可見,設(shè)置為False不可見
Set excelWorkbook = excelApp.Workbooks.Add
Set excelWorksheet = excelWorkbook.Sheets(1)
' 輸出匹配的單元格及其之后的數(shù)據(jù)到新的Excel工作簿
Dim rowIndex As Long, colIndex As Long
rowIndex = 1
For Each Rng In foundRows
colIndex = 1
For Each cell In Rng.Cells
excelWorksheet.Cells(rowIndex, colIndex).Value = cell.Value
colIndex = colIndex + 1
Next cell
rowIndex = rowIndex + 1
Next Rng
' 獲取電腦桌面路徑
desktopPath = CreateObject("WScript.Shell").SpecialFolders("Desktop")
' 保存Excel文件到桌面
excelWorkbook.SaveAs desktopPath & "\匹配單元格及數(shù)據(jù).xlsx"
' 釋放Excel對象
excelWorkbook.Close SaveChanges:=False
Set excelWorkbook = Nothing
excelApp.Quit
Set excelApp = Nothing
MsgBox "匹配單元格及數(shù)據(jù)已導(dǎo)出到桌面的Excel文件!"
End Sub
Function IsInArray(valToBeFound As Variant, arr As Variant) As Boolean
Dim element As Variant
On Error Resume Next
IsInArray = (UBound(Filter(arr, valToBeFound)) > -1)
On Error GoTo 0
End Function

  1. 輸入代碼中的Array()內(nèi)的實際值。

  2. 關(guān)閉VBA編輯器。

  3. 在Excel中,運(yùn)行宏:按下”Alt + F8″,選擇”導(dǎo)出匹配單元格及數(shù)據(jù)到Excel”并點(diǎn)擊”運(yùn)行”。

這樣,VBA代碼將在指定的區(qū)域內(nèi)查找多個單元格并將匹配的單元格及其之后的數(shù)據(jù)輸出到新創(chuàng)建的Excel文件中,該Excel文件將保存在電腦桌面上,并以”匹配單元格及數(shù)據(jù).xlsx”為文件名。

這里我做個截圖,以方便查看(注意:VBA在WPS里同樣可以使用,快捷鍵為alt+F11操作和界面通office一樣):

這時候直接關(guān)閉這個窗口即可,在表格內(nèi)按下Alt+F8執(zhí)行這一條宏(看到宏這個字是不是想到了魔獸世界里的按鍵宏,這突然勾起我wow獵人一鍵宏的回憶了ヾ(≧▽≦*)o),如下圖:

執(zhí)行完畢后會有窗口提示:

這樣就直接輸出到自己電腦桌面上一個xls文件,打開看一下:

靈活運(yùn)用就能夠使得處理大量數(shù)據(jù)并輸出到另外一個表格內(nèi)了,實現(xiàn)了自動化辦公。


在excel里處理數(shù)據(jù)的VBA代碼的評論 (共 條)

分享到微博請遵守國家法律
彭阳县| 浠水县| 铜梁县| 衡阳县| 景泰县| 永春县| 吉木萨尔县| 鄱阳县| 洪江市| 壶关县| 松原市| 政和县| 星座| 徐水县| 内丘县| 金华市| 泗水县| 新乡市| 莒南县| 富阳市| 武乡县| 东乌珠穆沁旗| 青龙| 安平县| 石首市| 高淳县| 都兰县| 蓬安县| 新蔡县| 山西省| 乌拉特前旗| 民权县| 巴林右旗| 布尔津县| 竹溪县| 杭锦旗| 康平县| 天全县| 调兵山市| 通州市| 冕宁县|