返回列表 上一主題 發帖

[發問] 請高人幫忙除錯,謝謝~

回復 17# GBKEE


    Option Explicit

Sub copy()

   Dim Rng(1 To 2) As Range

   'With Workbooks.Open("C:\Users\patrick.HKG\Desktop\COPY.XLSM").Sheets("2012") '檔案未開啟時用此程式碼

   With Workbooks("COPY.XLSM").Sheets("2012")                      '檔案已開啟時用此程式碼



       .Range("A1").CurrentRegion.Offset(1) = ""                '清除舊資料



        'A2:AM2 to A100:AM100 是Y:\2012\A.XLSX (2012) 的資料

        Set Rng(1) = .[A2]                                      '第一個Rng(1)

        With Workbooks.Open("C:\Users\patrick.HKG\Desktop\1.XLSX").Sheets("SHEET1")    '檔案開啟

            Set Rng(2) = .[A2:AM2]

            Set Rng(2) = .Range(Rng(2), .[A2].End(xlDown))     '資料不停增加: 到最後的資料

            Rng(2).copy Rng(1)

           .Parent.Close False                                  '檔案關閉

        End With

        'A101:AM101 to A150:AM150是C:\2012\B.XLSX (Nov)的資料

        Set Rng(1) = Rng(1).End(xlDown).Offset(1)               '第二個Rng(1)

        With Workbooks.Open("C:\Users\patrick.HKG\Desktop\2.XLSX").Sheets("SHEET1")     '檔案開啟

            Set Rng(2) = .[A2:AM2]

            Set Rng(2) = .Range(Rng(2), .[A2].End(xlDown))   '資料不停增加: 到最後的資料

            Rng(2).copy Rng(1)

           .Parent.Close False                                  '檔案關閉

        End With

        'A151:AM151 to A270:AM270是Z:\2012\C.XLSX (2012) 的資料

        Set Rng(1) = Rng(1).End(xlDown).Offset(1)              '第三個Rng(1)

        With Workbooks.Open("C:\Users\patrick.HKG\Desktop\3.XLSX").Sheets("sheet1")    '檔案未開啟
            
             Set Rng(2) = .[A2:AM2]                          '第二列 開始

            Set Rng(2) = .Range(Rng(2), .[A2].End(xlDown))   '資料不停增加: 到最後的資料
            
             Rng(2).copy Rng(1)

           .Parent.Close False                                  '檔案關閉

        End With

    End With

End Sub

已改了,成功了,謝謝

TOP

回復 18# GBKEE
請問可知道錯在哪裡?

    Sub txet1()
'單純複製更名
P = Format(Date, "m") & "-" & Format(Date, "d") & "-" & Format(Date, "Y")

VBA.FileCopy "Y:\2012\payment 2012\Outstanding payment ss 2012\Dec 2012\OutstandingPayments " & P & ".xlsm", "C:\users\patrick.hkg\desktop\outstandingpayments.xlsm"
End Sub

我將空格去掉後,也不行?file 名:OutstandingPayments12-4-2012.XLSM

TOP

回復 22# 198188
錯在這裡
  1. Option Explicit
  2. Sub EX()
  3.     Dim P
  4.     P = Format(Date, "m") & "-" & Format(Date, "d") & "-" & Format(Date, "Y")
  5.     MsgBox P
  6.     P = Format(Date, "m-D-YYYY")
  7.     MsgBox P
  8. End Sub
複製代碼

TOP

回復 23# GBKEE

Sub copyfile()
'單純複製更名
Dim P

P = Format(Date, "m-D-YYYY")

VBA.FileCopy "Y:\2012\payment 2012\Outstanding payment ss 2012\Dec 2012\Outstanding Payments" & P & ".xlsm", "C:\users\patrick.hkg\desktop\outstanding payments.xlsm"

End Sub

還是出現問題RUN-TIME ERROR'70': PERMISSION DENIED

TOP

本帖最後由 stillfish00 於 2012-12-4 19:31 編輯

回復 24# 198188
你可以手動複製更名看看是不是也出現錯誤
可能是檔案開啟中 或是 資料夾讀寫權限不足

TOP

回復 24# 198188
試試看
  1. Sub copyfile()
  2.     '單純複製更名
  3.     Dim xlfile As String
  4.     xlfile = "Y:\2012\payment 2012\Outstanding payment ss 2012\Dec 2012\Outstanding Payments" & Format(Date, "m-D-YYYY") & ".xlsm"
  5.     If Dir(xlfile) = "" Then
  6.         MsgBox "找不到 檔案"
  7.     Else
  8.         FileCopy xlfile, "C:\users\patrick.hkg\desktop\outstanding payments.xlsm"
  9.     End If
  10. End Sub
複製代碼

TOP

回復 8# kimbal


請問可否將不同的server內不同的excel,不同的sheet,copy在另外一個excel可以嗎?
括號內代表sheet名
Y:\2012\shipment 2012\Mainland ETA Update.xlsx (MAINLAN ETA)
Y:\2012\payment 2012\One Time Deposit list.xlsx (NOV)
Y:\2012\payment 2012\payment report 2012.xlsx (2012)
Y:\2012\claim 2012\Claim control 20100106.xlsx(2012)
Y:\2012\shipment 2012\HK ETA update.xlsx(HK ETA)
W:\PIHK\NEW 香港辦公室正本收放單記錄-FROM 01-MAR-2012 to current(updated).xlsx(RECEIVE)
Y:\2012\contract record 2012\daily doc.xlsx (DAILY DOCS)
Y:\2012\shipment 2012\ORACLE\ORACLESS 11-28 .xlsx(ORACLESS)

將以上的sheet 同時copy 在下面excel內可以嗎?每個sheet自動分開,用它們的excel名來命名sheet名
C:\Users\patrick.HKG\Desktop\Master.xlsx

TOP

回復 26# GBKEE

請問可否幫忙以下link 的問題,謝謝
  http://forum.twbts.com/thread-8512-1-1.html

TOP

回復 17# GBKEE

Data.rar (978.26 KB)

Sub copy()

   Dim Rng(1 To 2) As Range

   'With Workbooks.Open("C:\Users\patrick.HKG\Desktop\COPY.XLSM").Sheets("2012")
    With Workbooks("payment.XLSM").Sheets("2012")                  
       .Range("A1").CurrentRegion.Offset(1) = ""            

         Set Rng(1) = .[A2]
        With Workbooks.Open("C:\Users\patrick.HKG\Desktop\Jenny.XLSX").Sheets("SHEET1")   
             Set Rng(2) = .[A2:AL2]
             Set Rng(2) = .Range(Rng(2), .[A2].End(xlDown))     
             Rng(2).copy Rng(1)
           .Parent.Close False                                 
         End With

         Set Rng(1) = Rng(1).End(xlDown).Offset(1)               
        With Workbooks.Open("C:\Users\patrick.HKG\Desktop\Jane.XLSX").Sheets("SHEET1")     
             Set Rng(2) = .[A2:AL2]
             Set Rng(2) = .Range(Rng(2), .[A2].End(xlDown))   
            Rng(2).copy Rng(1)
            .Parent.Close False                                 
        End With

        Set Rng(1) = Rng(1).End(xlDown).Offset(1)               
        With Workbooks.Open("C:\Users\patrick.HKG\Desktop\Lily.XLSX").Sheets("sheet1")
         Set Rng(2) = .[A2:AL2]                       
       Set Rng(2) = .Range(Rng(2), .[A2].End(xlDown))               
             Rng(2).copy Rng(1)
            .Parent.Close False        
        End With
      
        Set Rng(1) = Rng(1).End(xlDown).Offset(1)            
         With Workbooks.Open("C:\Users\patrick.HKG\Desktop\Connie.XLSX").Sheets("sheet1")               
             Set Rng(2) = .[A2:AL2]           
       Set Rng(2) = .Range(Rng(2), .[A2].End(xlDown))               
             Rng(2).copy Rng(1)
            .Parent.Close False                                 
         End With
      
        Set Rng(1) = Rng(1).End(xlDown).Offset(1)              
        With Workbooks.Open("C:\Users\patrick.HKG\Desktop\Patrick.XLSX").Sheets("sheet1")               
             Set Rng(2) = .[A2:AL2]                          
       Set Rng(2) = .Range(Rng(2), .[A2].End(xlDown))   
             Rng(2).copy Rng(1)
            .Parent.Close False                                 
         End With
         End With
End Sub


由於我的data base沒有是E欄才可以check到最後一筆,請問我應該如何改。

TOP

回復 29# 198188
由於我的data base沒有是E欄才可以check到最後一筆,請問我應該如何改。
沒有是E欄 是何意

TOP

        靜思自在 : 要批評別人時,先想想自己是否完美無缺。
返回列表 上一主題