File lưu không đúng chỗ?

Liên hệ QC

voda

Thành viên tiêu biểu
Thành viên danh dự
Tham gia
27/3/07
Bài viết
687
Được thích
1,028
Chào các bạn.
Tôi có đoạn code sau:
Mã:
Option Base 1
 Sub Taofile()
 Dim i As Integer
 Dim Arr(4) As String
Arr(1) = "TOAN"
Arr(2) = "LY"
Arr(3) = "HOA"
Arr(4) = "SINH"
      For i = 1 To 4
        Workbooks.Add
        ActiveWorkbook.SaveAs Filename:=ActiveWorkbook.Path & "\" & Arr(i) & " .xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
        ActiveWindow.Close
     Next
End Sub
Theo tôi nghĩ khi chương trình chạy, các file mới tạo sẽ được lưu vào cùng vị trí với file chương trình. Thế nhưng khi copy hoặc cut file chương trình vào những chỗ khác nhau trong máy, các file được tạo cứ lưu vào vị trí ban đầu.
Nhờ các bạn giải thích giúp. Xin cám ơn.
 
Chỉnh sửa lần cuối bởi điều hành viên:
Khi bạn Add một workbook thì đường dẫn mặc định của workbook đó được quy định trong phần Default file location (Tools/ Options/ General)
Trong Macro của bạn thì bạn lưu file theo đường dẫn của Activate book, tức là workbook vừa được tạo ra chứ không phải đường dẫn của file được mở.
Bạn tham khảo đoạn code sau:
Mã:
Option Base 1
Sub Taofile()
Dim i As Integer
Dim Path1 As String
Dim Arr([COLOR=red]1 To 4[/COLOR]) As String
Arr(1) = "TOAN"
Arr(2) = "LY"
Arr(3) = "HOA"
Arr(4) = "SINH"
Path1 = ActiveWorkbook.Path
For i = 1 To 4
    Workbooks.Add
    ActiveWorkbook.SaveAs Filename:=Path1 & "\" & Arr(i) & " .xls", _
    FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
    ReadOnlyRecommended:=False, CreateBackup:=False
    ActiveWindow.Close
Next i
End Sub
 
Upvote 0
Cám ơn nvsonpxthanhcda đã giúp mình. Qua cách làm của các bạn, mình thấy được mấu chốt của vấn đề là phải đặt ActiveWorkbook.path trước vòng lặp để nó không bị thay đổi. Mình nhầm ở chỗ dùng cửa sổ immediate để kiểm tra lúc chương trình chưa thực thi nên cứ tưởng đường dẫn ấy là đúng.
 
Upvote 0
Web KT
Back
Top Bottom