亞寵展、全球寵物產業風向標——亞洲寵物展覽會深度解析
633
2025-03-31
手動選擇文件,并將選擇文件中的數據合并到一張工作表
本文為《別怕,Excel VBA其實很簡單(第3版)》隨書問題參-
改寫后的過程如下:
Sub 合并多工作簿所有工作表的數據() Application.ScreenUpdating = False Dim DataArr As Variant, DataWb As Workbook, DataSht As Worksheet Dim EndRow As Long, ToSht As Worksheet, ToRng As Range Dim FileName As Variant '要合并的工作簿名稱 Dim a As Long, b As Long Set ToSht = ThisWorkbook.Worksheets(1) ToSht.Rows("2:1048576").Clear '清除原有數據 FileName = Application.GetOpenFilename(filefilter:="Excel工作簿文件,*.xls?", Title:="請選擇文件", MultiSelect:=True) If TypeName(FileName) = "Boolean" Then Exit Sub Dim Fil As Variant For Each Fil In FileName Workbooks.Open FileName:=Fil Set DataWb = ActiveWorkbook For Each DataSht In DataWb.Worksheets EndRow = DataSht.Range("A1048576").End(xlUp).Row DataArr = DataSht.Range("A2").Resize(EndRow - 1, 8).Value Set ToRng = ToSht.Range("A1048576").End(xlUp).Offset(1, 0) For a = 1 To UBound(DataArr, 1) '將數組中超過15位的數字轉為文本 For b = 1 To UBound(DataArr, 2) If Len(DataArr(a, b)) > 15 Then DataArr(a, b) = "'" & DataArr(a, b) End If Next b Next a ToRng.Resize(UBound(DataArr, 1), 8).Value = DataArr Next DataSht DataWb.Close savechanges:=False Next Fil Application.ScreenUpdating = True MsgBox "合并完成!"End Sub
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。