Kiểm tra sự tồn tại của File (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Cá ngừ F1

( ͡° ͜ʖ ͡°)
Thành viên BQT
Moderator
Tham gia
1/1/08
Bài viết
2,579
Được thích
3,723
Donate (Momo)
Donate
Giới tính
Nam
Nghề nghiệp
Quan hệ.. và quan hệ..
E có 1 file Excel tên TONGHOP, tại ô A1 có nội dung: dd/mm/yyyy (ví dụ: 08/05/2014)
Tại module e có code sau:
Mã:
' Copy va Save as du lieu tu 10.45.8.8\dlg$
Sub Copy_loan()
    Application.DisplayAlerts = False
    Workbooks.Open FileName:="\\10.45.8.8\dlg$\" & Format([COLOR=#ff0000][B][A1][/B][/COLOR].Value, "dMMyy") & _
   "loan.123.dbf"
' Save as ve Import
    ActiveWorkbook.SaveAs FileName:="D:\SHARE\2. Du lieu goc\Import\" & _
    Format([COLOR=#ff0000][B][AS2][/B][/COLOR].Value, "dMMyy") & "loan.123.xlsb", FileFormat:=xlExcel12
' Close lai
    ActiveWorkbook.Close
    Application.DisplayAlerts = True
End Sub
Diễn giải code: Mở file có tên 8052014loan.123.dbf tại thư mục: \\10.45.8.8\dlg$ -> Sau đó Save as thành file dạng excel có tên 8052014loan.123.xlsb (8052014 là tham chiếu của ô AS2 của file .dbf vừa mở) -> Sau khi save rồi thì đóng file .dbf lại.
Câu hỏi của e:
1. E muốn xin code kiểm tra sự tồn tại của file .dbf trên, nếu có thì tiếp tục mở và save as như diễn giải, nếu không tồn tại thì msgbox không tồn tại và thoát khỏi thủ tục2.
2. Sau khi save e có lấy tham chiếu ô AS2 của file .dbf để đặt tên cho file excel .xlsb (e có bôi đỏ ở code). Giờ muốn lấy tham chiếu theo ô A1 của file tổng hợp thì sửa code thế nào ạh
Mong nhận được sự giúp đỡ.
E xin cảm ơn...


 
E có 1 file Excel tên TONGHOP, tại ô A1 có nội dung: dd/mm/yyyy (ví dụ: 08/05/2014)
Tại module e có code sau:
Mã:
' Copy va Save as du lieu tu 10.45.8.8\dlg$
Sub Copy_loan()
    Application.DisplayAlerts = False
    Workbooks.Open FileName:="\\10.45.8.8\dlg$\" & Format([COLOR=#ff0000][B][A1][/B][/COLOR].Value, "dMMyy") & _
   "loan.123.dbf"
' Save as ve Import
    ActiveWorkbook.SaveAs FileName:="D:\SHARE\2. Du lieu goc\Import\" & _
    Format([COLOR=#ff0000][B][AS2][/B][/COLOR].Value, "dMMyy") & "loan.123.xlsb", FileFormat:=xlExcel12
' Close lai
    ActiveWorkbook.Close
    Application.DisplayAlerts = True
End Sub
Diễn giải code: Mở file có tên 8052014loan.123.dbf tại thư mục: \\10.45.8.8\dlg$ -> Sau đó Save as thành file dạng excel có tên 8052014loan.123.xlsb (8052014 là tham chiếu của ô AS2 của file .dbf vừa mở) -> Sau khi save rồi thì đóng file .dbf lại.
Câu hỏi của e:
1. E muốn xin code kiểm tra sự tồn tại của file .dbf trên, nếu có thì tiếp tục mở và save as như diễn giải, nếu không tồn tại thì msgbox không tồn tại và thoát khỏi thủ tục2.
2. Sau khi save e có lấy tham chiếu ô AS2 của file .dbf để đặt tên cho file excel .xlsb (e có bôi đỏ ở code). Giờ muốn lấy tham chiếu theo ô A1 của file tổng hợp thì sửa code thế nào ạh
Mong nhận được sự giúp đỡ.
E xin cảm ơn...
Nếu không có file thì câu lệnh Workbooks.Open sẽ báo lỗi. Giải pháp đơn giản nhất là đặt bẫy lỗi On Error Goto ..... Đặt End Sub trước câu lệnh Msgbox "File không tồn tại"....
 
Upvote 0
Nếu không có file thì câu lệnh Workbooks.Open sẽ báo lỗi. Giải pháp đơn giản nhất là đặt bẫy lỗi On Error Goto ..... Đặt End Sub trước câu lệnh Msgbox "File không tồn tại"....
Theo gợi ý của a, E viết thành, test thử có vẻ được
Mà ý thứ 2 giải pháp như nào hả a?
Mã:
Sub Copy_loan()
Application.DisplayAlerts = False
On error goto BaoLoi
        Workbooks.Open FileName:="\\10.45.8.8\dlg$\" & Format([COLOR=#ff0000][B][A1][/B][/COLOR].Value, "dMMyy") & _
        "loan.123.dbf"
     BaoLoi:
            Msgbox "Ko ton tai file"
     Exit sub
' Save as ve Import
ActiveWorkbook.SaveAs FileName:="D:\SHARE\2. Du lieu goc\Import\" & _
Format([COLOR=#ff0000][B][AS2][/B][/COLOR].Value, "dMMyy") & "loan.123.xlsb", FileFormat:=xlExcel12
' Close lai
ActiveWorkbook.Close
Application.DisplayAlerts = True
End Sub
 
Upvote 0
Theo gợi ý của a, E viết thành, test thử có vẻ được
Mà ý thứ 2 giải pháp như nào hả a?
Như thế này bạn ạ!
Mã:
Sub Copy_loan()
On Error GoTo BaoLoi
Application.DisplayAlerts = False
Workbooks.Open Filename:="\\10.45.8.8\dlg$\" & Format([A1].Value, "dMMyy") & "loan.123.dbf"
' Save as ve Import
ActiveWorkbook.SaveAs Filename:="D:\SHARE\2. Du lieu goc\Import\" & _
Format([AS2].Value, "dMMyy") & "loan.123.xlsb", FileFormat:=xlExcel12
' Close lai
ActiveWorkbook.Close
Application.DisplayAlerts = True
Exit Sub
BaoLoi:
MsgBox "Ko ton tai file"
Application.DisplayAlerts = True
End Sub
 
Upvote 0
Như thế này bạn ạ!
Mã:
Sub Copy_loan()
On Error GoTo BaoLoi
Application.DisplayAlerts = False
Workbooks.Open Filename:="\\10.45.8.8\dlg$\" & Format([COLOR=#ff0000][B][A1][/B][/COLOR].Value, "dMMyy") & "loan.123.dbf"
' Save as ve Import
ActiveWorkbook.SaveAs Filename:="D:\SHARE\2. Du lieu goc\Import\" & _
Format([COLOR=#ff0000][B][AS2][/B][/COLOR].Value, "dMMyy") & "loan.123.xlsb", FileFormat:=xlExcel12
' Close lai
ActiveWorkbook.Close
Application.DisplayAlerts = True
Exit Sub
BaoLoi:
MsgBox "Ko ton tai file"
Application.DisplayAlerts = True
End Sub
Chỗ AS2 của activeworkbook làm sao để thay bằng A1 (workbook ban đầu ko active do đang chạy thủ tục)
 
Upvote 0
Upvote 0
Uây a ơi, phải mở ra thì mới save as được chứ ạh
Ý mình là đảo 2 dòng này cho nhau:
Mã:
ActiveWorkbook.SaveAs Filename:="D:\SHARE\2. Du lieu goc\Import\" & _
Format([COLOR=#ff0000][B][AS2][/B][/COLOR].Value, "dMMyy") & "loan.123.xlsb", FileFormat:=xlExcel12
Mà hình như mình chưa hiểu ý bạn!!!??
 
Upvote 0
Ý mình là đảo 2 dòng này cho nhau:
Mã:
ActiveWorkbook.SaveAs Filename:="D:\SHARE\2. Du lieu goc\Import\" & _
Format([COLOR=#ff0000][B][AS2][/B][/COLOR].Value, "dMMyy") & "loan.123.xlsb", FileFormat:=xlExcel12
Mà hình như mình chưa hiểu ý bạn!!!??
Dạ.. có lẽ a chưa hiểu ý e
Thế này là:
Đầu tiên lấy tham chiếu ở ô A1 (có định dạng dd/mm/yyyy) (file nguồn) để mở file có dạng dmmyyyyloan.123.dbf tại thư mục như code đầu
Sau khi mở file dmmyyyyloan.123.dbf thì file này thành activeworkbook nên e chỉ lấy được format tại ô AS2 của file này.
Tuy nhiên, nhiều khi ô AS2 lại ko có dữ liệu j nên tên file save as ko đúng yêu cầu, nên e muốn lấy theo ô A1 của file nguồn.
 
Lần chỉnh sửa cuối:
Upvote 0
Dạ.. có lẽ a chưa hiểu ý e
Thế này là:
Đầu tiên lấy tham chiếu ở ô A1 (có định dạng dd/mm/yyyy) (file nguồn) để mở file có dạng dmmyyyyloan.123.dbf tại thư mục như code đầu
Sau khi mở file dmmyyyyloan.123.dbf thì file này thành activeworkbook nên e chỉ lấy được format tại ô AS2 của file này.
Tuy nhiên, nhiều khi ô AS2 lại ko có dữ liệu j nên tên file save as ko đúng yêu cầu, nên e muốn lấy theo ô A1 của file nguồn.
Có thể là như thế này:
Mã:
Sub Copy_loan()
Dim Fm
On Error GoTo BaoLoi
Application.DisplayAlerts = False
Fm = Format([A1], "dmmyy")
Workbooks.Open Filename:="\\10.45.8.8\dlg$\" & Fm & "loan.123.dbf"
' Save as ve Import
Format([AS2]) = Fm
ActiveWorkbook.SaveAs Filename:="D:\SHARE\2. Du lieu goc\Import\" & _
Fm & "loan.123.xlsb", FileFormat:=xlExcel12
' Close lai
ActiveWorkbook.Close
Application.DisplayAlerts = True
Exit Sub
BaoLoi:
MsgBox "Ko ton tai file"
Application.DisplayAlerts = True
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Để kiểm tra sự tồn tại của file bạn có thể dùng đoạn code có dạng dưới đây, bạn tuỳ biến cho công việc của mình
Mã:
    With CreateObject("Scripting.FileSystemObject")
        If .FileExists("[COLOR=#ff0000][B]Đường dẫn của file[/B][/COLOR]") = False Then
            MsgBox "File khong ton tai", vbInformation, "Thong bao"
        End If
    End With
 
Upvote 0
Sau khi được sự gợi ý của A Manh_LinhDHN46
E có viết code sau:
Mã:
[COLOR=#000000][FONT=Helvetica Neue]Sub Copy_loan()[/FONT][/COLOR]
[COLOR=#000000][FONT=Helvetica Neue]    Application.DisplayAlerts = False[/FONT][/COLOR]
[COLOR=#000000][FONT=Helvetica Neue]    Dim Name1 As String, Name2 As String[/FONT][/COLOR]
[COLOR=#000000][FONT=Helvetica Neue]        Name1 = "\\10.45.8.8\dlg$\" & Format([A1].Value, "dMMyy") & _[/FONT][/COLOR]
[COLOR=#000000][FONT=Helvetica Neue]                "loan.123.dbf"[/FONT][/COLOR]
[COLOR=#000000][FONT=Helvetica Neue]        Name2 = "D:\SHARE\2. Du lieu goc\Import\" & _[/FONT][/COLOR]
[COLOR=#000000][FONT=Helvetica Neue]                Format([A1].Value, "dMMyy") & "Loan.123.xlsb"[/FONT][/COLOR]
[COLOR=#000000][FONT=Helvetica Neue]' Kiem tra su ton tai cua file[/FONT][/COLOR]
[COLOR=#000000][FONT=Helvetica Neue]    With CreateObject("Scripting.FileSystemObject")[/FONT][/COLOR]
[COLOR=#000000][FONT=Helvetica Neue]        If .FileExists(Name1) = False Then[/FONT][/COLOR]
[COLOR=#000000][FONT=Helvetica Neue]            MsgBox "Chua co file Loan", vbInformation, "tho^ng bao'"[/FONT][/COLOR]
[COLOR=#000000][FONT=Helvetica Neue]            Exit Sub[/FONT][/COLOR]
[COLOR=#000000][FONT=Helvetica Neue]            Else[/FONT][/COLOR]
[COLOR=#000000][FONT=Helvetica Neue]            Workbooks.Open Name1[/FONT][/COLOR]
[COLOR=#000000][FONT=Helvetica Neue]            ActiveWorkbook.SaveAs Name2, FileFormat:=xlExcel12[/FONT][/COLOR]
[COLOR=#000000][FONT=Helvetica Neue]        End If[/FONT][/COLOR]
[COLOR=#000000][FONT=Helvetica Neue]    End With[/FONT][/COLOR]
[COLOR=#000000][FONT=Helvetica Neue]' Close lai[/FONT][/COLOR]
[COLOR=#000000][FONT=Helvetica Neue]    ActiveWorkbook.Close[/FONT][/COLOR]
[COLOR=#000000][FONT=Helvetica Neue]    Application.DisplayAlerts = True[/FONT][/COLOR]
[COLOR=#000000][FONT=Helvetica Neue]End Sub[/FONT][/COLOR]
E có khai báo biến Name luôn từ đầu, như thế nó sẽ lấy tham chiếu tại ô A1 của file nguồn.
Xin cảm ơn...
 
Upvote 0

Bài viết mới nhất

Back
Top Bottom