Save As thì không hiện đúng tiêu đề của file mới save? (1 người xem)

  • Thread starter Thread starter pmhoang
  • Ngày gửi Ngày gửi

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

pmhoang

Thành viên thường trực
Tham gia
4/7/08
Bài viết
269
Được thích
83
Mình có lập trình vba, cho cái tiêu đề của file, cái dòng chử trên cùng khi mở file đó.
gồm: Tên file - sinh vien
vb file là: bb.xls thì khi mở lên nó sẽ hiện ra là bb.xls - sinh vien
cái này thì mình làm được.

Nhưng có một lỗi là, khi save as với một tên khác, vd cc, dd, hay gì đó, thì cái tên file vẫn là bb.xls - sinh vien, nó không thay đổi lại cho đúng với tên vừa save as.

Mong anh em GPE giúp mình save as , và hiện đúng tên file - sinh vien.
Chúc anh em vui ve
 

File đính kèm

Giải pháp cho bạn là:

Khi Save thì lưu lại tên => gán tên đó vào Code đổi Caption của Active Window
 
Upvote 0
Mình có lập trình vba, cho cái tiêu đề của file, cái dòng chử trên cùng khi mở file đó.
gồm: Tên file - sinh vien
vb file là: bb.xls thì khi mở lên nó sẽ hiện ra là bb.xls - sinh vien
cái này thì mình làm được.

Nhưng có một lỗi là, khi save as với một tên khác, vd cc, dd, hay gì đó, thì cái tên file vẫn là bb.xls - sinh vien, nó không thay đổi lại cho đúng với tên vừa save as.

Mong anh em GPE giúp mình save as , và hiện đúng tên file - sinh vien.
Chúc anh em vui ve
Cho code này vào cái file đính kèm của bạn rồi chạy code thử
PHP:
Sub Save_as()
With ThisWorkbook
   .SaveAs "D:\Test", 18
End With
End Sub
 
Upvote 0
Giải pháp cho bạn là:

Khi Save thì lưu lại tên => gán tên đó vào Code đổi Caption của Active Window
Save as, là cái tên mình nhập vào lúc save, cái này mỗi lúc mỗi khác làm sao mà đưa vào code, thì biết bao nhiêu tên cho nó đủ.
Cảm ơn ban đã góp ý nha.
 
Upvote 0
Cho code này vào cái file đính kèm của bạn rồi chạy code thử
PHP:
Sub Save_as()
With ThisWorkbook
   .SaveAs "D:\Test", 18
End With
End Sub
Mình bỏ vào và chạy thử cũng save as ko co hiện cái tên vừa save ra bạn a.
code của mình chỉ có 1 đòng là
trong thiskworkbook
Private Sub Workbook_Open()
ActiveWindow.Caption = ThisWorkbook.Name & " - Sinh Vien"
End Sub
 
Upvote 0
Save as, là cái tên mình nhập vào lúc save, cái này mỗi lúc mỗi khác làm sao mà đưa vào code, thì biết bao nhiêu tên cho nó đủ.
Cảm ơn ban đã góp ý nha.
Sao lại không biêt chứ?
Mã:
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
    MsgBox Application.ThisWorkbook.Name
End Sub
 
Upvote 0
Sao lại không biêt chứ?
Mã:
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
    MsgBox Application.ThisWorkbook.Name
End Sub
Private Sub Workbook_AfterSave không có hoạt động bạn à, nó không thông báo gì, và tên tiêu đề cũng chẳn thay đổi theo tên mình vừa save as

Private Sub Workbook_AfterSave(ByVal Success As Boolean)
MsgBox Application.ThisWorkbook.Name
ActiveWindow.Caption = ThisWorkbook.Name & " - Sinh Vien"
End Sub

Rất cảm ơn nhiệt tình của các bạn, mong được giúp đở
 
Upvote 0
Bạn thao tác vậy chưa được.

Bài #6 chỉ cho bạn cách lấy tên sau khi Save, cái Msgbox đó là thông báo, nếu không có bất kỳ một thông báo nào sau khi Save thì bạn xem xét lại File của bạn xem có vấn đề gì không, ví dụ như đã cho phép enable Macro chẳng hạn.
 
Upvote 0
Bạn thao tác vậy chưa được.

Bài #6 chỉ cho bạn cách lấy tên sau khi Save, cái Msgbox đó là thông báo, nếu không có bất kỳ một thông báo nào sau khi Save thì bạn xem xét lại File của bạn xem có vấn đề gì không, ví dụ như đã cho phép enable Macro chẳng hạn.
Mình đã chấp nhận chạy maro, các macro khác chạy bình thường, file mình ko có gì cả, mình tạo 1 new file rồi copy code của bạn vào thisworkbook mà nó cũng không chạy, mình xem lại các hàm điều kiện trong excel, không có điều kiện AfterSave, nên mình nghĩ các là nó không chạy được.

 
Upvote 0
Bạn dùng Excel 2003 phải không? Nếu đúng bạn dùng Code sau cho Thisworkbook
Mã:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim sPathname   As String
    If SaveAsUI = False Then Exit Sub
    Cancel = True
    Application.EnableEvents = False
    sPathname = Application.GetSaveAsFilename(FileFilter:="Excel Files (*.xls), *.xls")
    If sPathname = "" Then Exit Sub
    Me.SaveAs Filename:=sPathname, FileFormat:=xlNormal
    Application.EnableEvents = True
    ActiveWindow.Caption = Right(sPathname, Len(sPathname) - InStrRev(sPathname, "\")) & "-sinh vien"
End Sub
 
Upvote 0
Bạn dùng Excel 2003 phải không? Nếu đúng bạn dùng Code sau cho Thisworkbook
Mã:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim sPathname   As String
    If SaveAsUI = False Then Exit Sub
    Cancel = True
    Application.EnableEvents = False
    sPathname = Application.GetSaveAsFilename(FileFilter:="Excel Files (*.xls), *.xls")
    If sPathname = "" Then Exit Sub
    Me.SaveAs Filename:=sPathname, FileFormat:=xlNormal
    Application.EnableEvents = True
    ActiveWindow.Caption = Right(sPathname, Len(sPathname) - InStrRev(sPathname, "\")) & "-sinh vien"
End Sub
Wa, code của bạn đã làm được rồi. cảm ơn bạn rất nhiều nha.
 
Upvote 0

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

Back
Top Bottom