LƯU FILE bị trùng tên với file đã có trong cùng 1 folder

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

Nhật Anh 9x

Thành viên chính thức
Tham gia
21/10/22
Bài viết
72
Được thích
3
Thưa anh chị

Em đang gặp phải vấn đề, e đã lưu đc và đặt tên file định dạng xlsx vào trong 1 folder cùng với file viết code
Nhưng e đang có vấn đề là, nếu em lưu file đó 1 lần nữa với tên và định dạng giống như file đã lưu thì nó đè lên file cũ
E muốn làm thế nào để nếu em tiếp tục lưu thì file đó sẽ hiển thị với tên và kí tự khác 1 chút, giả sử như A.xlsx thì sẽ có A(1).xlsx
Kính mong anh chị nào biết, or đã gặp trường hợp này thì chỉ dạy cho em

Private Sub CommandButton1_Click()
Dim path As String
Dim item As Variant
item = Range("D12")
fname = item & " " & Format(Date, "dd-mm-yyyy")
Application.DisplayAlerts = False
Sheets(1).Copy
ActiveSheet.Shapes("CommandButton1").Delete
With ActiveWorkbook
.SaveAs ThisWorkbook.path & "/" & item & " " & Format(Date, "dd-mm-yyyy") & ".xlsx"
.Close
End With
Application.DisplayAlerts = True
End Sub
 
Em đang gặp phải vấn đề, e đã lưu đc và đặt tên file định dạng xlsx vào trong 1 folder cùng với file viết code
Nhưng e đang có vấn đề là, nếu em lưu file đó 1 lần nữa với tên và định dạng giống như file đã lưu thì nó đè lên file cũ
E muốn làm thế nào để nếu em tiếp tục lưu thì file đó sẽ hiển thị với tên và kí tự khác 1 chút, giả sử như A.xlsx thì sẽ có A(1).xlsx
Kính mong anh chị nào biết, or đã gặp trường hợp này thì chỉ dạy cho em
Đừng viết tắt. Và cũng đừng tây ta lẫn lộn.
Thêm 1 hàm kiểm tra sự tồn tại của file nữa. Nếu có rồi thì đặt 1 tên mới khác tên cũ là được
 
Upvote 0
Thưa anh chị

Em đang gặp phải vấn đề, e đã lưu đc và đặt tên file định dạng xlsx vào trong 1 folder cùng với file viết code
Nhưng e đang có vấn đề là, nếu em lưu file đó 1 lần nữa với tên và định dạng giống như file đã lưu thì nó đè lên file cũ
E muốn làm thế nào để nếu em tiếp tục lưu thì file đó sẽ hiển thị với tên và kí tự khác 1 chút, giả sử như A.xlsx thì sẽ có A(1).xlsx
Kính mong anh chị nào biết, or đã gặp trường hợp này thì chỉ dạy cho em

Private Sub CommandButton1_Click()
Dim path As String
Dim item As Variant
item = Range("D12")
fname = item & " " & Format(Date, "dd-mm-yyyy")
Application.DisplayAlerts = False
Sheets(1).Copy
ActiveSheet.Shapes("CommandButton1").Delete
With ActiveWorkbook
.SaveAs ThisWorkbook.path & "/" & item & " " & Format(Date, "dd-mm-yyyy") & ".xlsx"
.Close
End With
Application.DisplayAlerts = True
End Sub
tham khảo bạn ơi :

Mã:
Private Sub CommandButton1_Click()
    Dim path As String
    Dim item As Variant
    Dim suffix As Integer 'declare a variable to hold the suffix number
    suffix = 1 'initialize the suffix to 1
    
    item = Range("D12")
    fname = item & " " & Format(Date, "dd-mm-yyyy")
    
    'loop until the file name is unique
    Do While Len(Dir(ThisWorkbook.path & "/" & fname & ".xlsx")) > 0
        'add the suffix to the file name
        fname = item & " " & Format(Date, "dd-mm-yyyy") & " " & suffix
        suffix = suffix + 1 'increment the suffix
    Loop
    
    Application.DisplayAlerts = False
    Sheets(1).Copy
    ActiveSheet.Shapes("CommandButton1").Delete
    With ActiveWorkbook
        .SaveAs ThisWorkbook.path & "/" & fname & ".xlsx"
        .Close
    End With
    Application.DisplayAlerts = True
End Sub
 
Upvote 0
Mình làm thế này cho gọn vậy.
Mã:
.SaveAs ThisWorkbook.path & "/" & item & " " & Format(Now, "dd-mm-yyyy_hh_nn_ss") & ".xlsx"
 
Upvote 0
Đừng viết tắt. Và cũng đừng tây ta lẫn lộn.
Thêm 1 hàm kiểm tra sự tồn tại của file nữa. Nếu có rồi thì đặt 1 tên mới khác tên cũ là được
Vâng em xin lỗi. em sẽ rút kinh nghiệm khi viết bài ạ
Bài đã được tự động gộp:

tham khảo bạn ơi :

Mã:
Private Sub CommandButton1_Click()
    Dim path As String
    Dim item As Variant
    Dim suffix As Integer 'declare a variable to hold the suffix number
    suffix = 1 'initialize the suffix to 1
   
    item = Range("D12")
    fname = item & " " & Format(Date, "dd-mm-yyyy")
   
    'loop until the file name is unique
    Do While Len(Dir(ThisWorkbook.path & "/" & fname & ".xlsx")) > 0
        'add the suffix to the file name
        fname = item & " " & Format(Date, "dd-mm-yyyy") & " " & suffix
        suffix = suffix + 1 'increment the suffix
    Loop
   
    Application.DisplayAlerts = False
    Sheets(1).Copy
    ActiveSheet.Shapes("CommandButton1").Delete
    With ActiveWorkbook
        .SaveAs ThisWorkbook.path & "/" & fname & ".xlsx"
        .Close
    End With
    Application.DisplayAlerts = True
End Sub
Em cảm ơn anh chị em đã làm được rồi ạ
Bài đã được tự động gộp:

Mình làm thế này cho gọn vậy.
Mã:
.SaveAs ThisWorkbook.path & "/" & item & " " & Format(Now, "dd-mm-yyyy_hh_nn_ss") & ".xlsx"
vâng cách này cũng được ạ. cảm ơn anh chị
 
Upvote 0
Web KT

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

Back
Top Bottom