返回列表 上一主題 發帖

[發問] 如何讓A檔儲存在"X檔",讓"X檔"當作資料庫

回復 1# PKKO
是這樣嗎?
試試看
  1. Sub 儲存前儲存至資料庫()
  2.     Dim Xpath  As String
  3.     Xpath "P:\REPORT\Daily Check\"
  4.     Workbooks("x.xlsb").Close False  '儲存開啟中的檔案,此開啟中的檔須先關閉
  5.     Application.DisplayAlerts = False
  6.     ThisWorkbook.SaveCopyAs Xpath & "x.xlsb"  'ThisWorkbook -> 這程式在 "A.xlsb"的專案模組中
  7.     Application.DisplayAlerts = True
  8.     Workbooks.Open Xpath & "x.xlsb", ReadOnly:=True  '再度開啟檔案(唯讀)
  9. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 GBKEE 於 2014-12-2 08:35 編輯

回復 3# PKKO
  1. Sub 儲存前儲存至資料庫()
  2.     Dim Xpath  As String, Sh(1 To 2) As Worksheet, Wo(1 To 2) As Workbook, A As Variant
  3.     Xpath = "P:\REPORT\Daily Check\"
  4.     Set Wo(1) = Workbooks("x.xlsb")
  5.     Wo(1).Close False   '儲存開啟中的檔案,此開啟中的檔須先關閉
  6.     Set Wo(1) = Workbooks.Open(Xpath & "x.xlsb")
  7.     For Each A In Array("A.xlsb", "b.xlsb", "f.xlsb") '檔案有A檔,B檔~F檔
  8.         Set Wo(2) = Workbooks.Open(Xpath & A)
  9.         For Each Sh(2) In Wo(2).Sheets
  10.             On Error Resume Next
  11.             Set Sh(1) = Wo(1).Sheets(Sh(2).Name)
  12.             If Err <> 0 Then
  13.                 Sh(2).Copy , Wo(1).Sheets(Wo(1).Sheets.Count)
  14.                 Err.Clear
  15.                 On Error GoTo 0
  16.             Else
  17.                 Sh(1).UsedRange.Clear
  18.                 Sh(2).UsedRange.Copy Sh(1).Range("a1")
  19.             End If
  20.         Next
  21.         Wo(2).Close False
  22.     Next
  23.     Wo(1).Close True
  24.     Workbooks.Open Xpath & "x.xlsb", ReadOnly:=True  '再度開啟檔案(唯讀)
  25. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 7# PKKO

但以下兩行程式碼皆無反應
Sh(1).UsedRange.Clear
Sh(2).Copy Sh(1).Range("a1")
須更正為
  1. Sh(2).UsedRange.Copy Sh(1).Range("a1")
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 發脾氣是短暫的發瘋。
返回列表 上一主題