- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
2#
發表於 2015-3-17 07:58
| 只看該作者
回復 1# rouber590324
試試看- Option Explicit
- Sub Ex()
- Dim P As String, F As String, Rng As Range, Sh As Worksheet, Sh_Name As String
- P = "C:\AAA\"
- F = Dir(P & "*.xls")
- If F = "" Then Exit Sub
- Sh_Name = ","
- Set Rng = Workbooks.Add(1).Sheets(1).[A1] '新增活頁簿(一張工作表): 設置目的儲存格
- Application.ScreenUpdating = False
- Do While F <> ""
- With Workbooks.Open(P & F)
- For Each Sh In .Worksheets
- '工作表名稱相同 (或) 空白工作表,不予COPY
- If InStr(Sh_Name, "," & Sh.Name & ",") = 0 Then '工作表名稱不相同
- Sh_Name = Sh_Name & Sh.Name & "," '新增工作表名稱
- If WorksheetFunction.CountA(Sh.UsedRange.Columns(1)) > 0 Then '不是空白工作表
- Sh.UsedRange.Copy Rng '資料複製到目的儲存格
- '目的儲存格重置******
- If Rng.End(xlDown).Row = Rows.Count Then
- Set Rng = Rng.Offset(1) '下移一列
- Else
- Set Rng = Rng.End(xlDown).Offset(1) '下移到最後有資料的一列
- End If
- '*********************
- End If
- End If
- Next
- .Close False
- End With
- F = Dir
- Loop
- Rng.Parent.SaveAs "D:\資料庫.XLS" '資料彙整同一 EXCEL後存檔
- Application.ScreenUpdating = True
- End Sub
複製代碼 |
|