Code lấy tên sheet hiện hành là:Chào các bạn.
Xin các bạn chỉ giúp code lấy tên sheet hiện hành ở trong VBA
(TÊN LÀ TÊN TRONG VBA, VÍ DỤ BÊN NGOÀI EXCELL LÀ SHEET "KHỐI LƯỢNG" NHƯNG NAME BÊN TRONG VBA LA "S001"). XIN CẢM ƠN.
Sub thu() Sheets("KL").Name = ActiveSheet.CodeName End Sub
Cảm ơn ndu !
Với lại mấy bạn cho hỏi thêm một vấn đề nữa
VD: tên sheet là "KL", Sheet code name "S001"
Thay vì dùng câu lệnh:
Sheets("KL").Activate
Thì phải dùng câu lệnh như thế nào để thay tên sheet bằng tên Sheet code name
Rất mong được sự giúp đỡ của các bạn
S001.Active
Không được rồi bạn ơi.Thế này bạn ạ :
Thân!PHP:S001.Active
Workbooks("yeudoi").Sheets("doiyeu").Active
Thế này bạn ạ :
Thân!PHP:S001.Active
Các đại ca cứ hay sơ ý: Đáng lý là... .Activate thì lại ghi là .ActiveBạn đưa tên file vào
Workbooks("yeudoi").Sheets("doiyeu").Active
Thì bạn sửa lại chổ SheetName thành SheetCodeName... Có sao đâu!Mình chưa chạy thử nhưng nghĩ đaọn code này không được.
Chọn như vậy hình như la chọn theo tên sheet (name) chứ không phải theo codename
Là đang chọn theo sheet name, bạn sửa thành:Workbooks("yeudoi").Sheets("doiyeu").Activate
Với S001 là Sheet Code name trong WorkBook yeudoiWorkbooks("yeudoi").S001.Activate
Hic , không biết bạn có chạy thử đoạn code nào giống như vậy chưa.Thì bạn sửa lại chổ SheetName thành SheetCodeName... Có sao đâu!
Ví dụ:
Là đang chọn theo sheet name, bạn sửa thành:
Với S001 là Sheet Code name trong WorkBook yeudoi
Không được rồi bạn ơi.
Code như thế này chỉ chạy được trong trường hợp file đó có : code và sheet có codename trong cùng 1 file.
Có trường hợp bắt buộc do yêu cầu sử dụng:code nằm trong 1 file va sheet có codename nằm ở 1 file khác thì làm thế nào.
Mong các bạn chỉ giúp với.
Sub Test()
S001.Activate ''Activate chứ không phải là Active
End Sub
Có lẽ bạn chưa hiểu hết ý mình ( có thể bạn chưa đọc từ đầu)Tôi dùng cách này, giống với Anh OKBắp, chép vào Module chạy vô tư:
PHP:Sub Test() S001.Activate ''Activate chứ không phải là Active End Sub
Sub Test() Dim sh As Worksheet Workbooks("Book1.xls").Activate For Each sh In ThisWorkbook.Worksheets If sh.CodeName = "S001" Then sh.Select End If Next End Sub
Cần gì phải For nhỉ? Cứ S001.Select hoặc S001.Activate là được rồi...Vậy bạn dùng code sau nha!
PHP:Sub Test() Dim sh As Worksheet Workbooks("Book1.xls").Activate For Each sh In ThisWorkbook.Worksheets If sh.CodeName = "S001" Then sh.Select End If Next End Sub
Minh đã kiểm tra theo ý của bạn, bạn dùng code này sẽ Acti Sheet 1 trong Book1.xls, Code lưu ở bất cứ file nào cũng được.Có lẽ bạn chưa hiểu hết ý mình ( có thể bạn chưa đọc từ đầu)
Mình viết code ở 1 file (file này không có sheet mình cần thao tác chỉ chứa code)
Còn file chứa sheet codename ở 1 file khác thì dùng code trên không thực hiện được
Nếu có thể bạn gởi 2 file tương tự như vậy được không.
Sub Test_pmh()
Workbooks("Book1.xls").Sheets("Sheet1").Activate
End Sub
''-- Chuyen qua lai giua 2 Sheet
Sub Sh1_Shbandau1()
Dim NameSh As String
NameSh = ActiveSheet.Name
MsgBox "Ten Sheet hien hanh trong Excel la: " & NameSh
Sheet1.Activate
MsgBox "Da chuyen qua Sheet dau tien"
Sheets(NameSh).Activate
MsgBox "Da chuyen ve Sheet hien hanh ban dau la: " & NameSh
End Sub
''-- Chuyen qua lai giua 2 Sheet??? Khong duoc??? GPE???
Sub Sh1_Shbandau2()
Dim NameShVB As String
NameShVB = ActiveSheet.CodeName
MsgBox "Ten Sheet hien hanh trong VB la: " & NameShVB
Sheet1.Activate
MsgBox "Da chuyen qua Sheet dau tien"
Sheets(NameShVB).Activate ''-- Dong Code nay bi Error mong cac ban gop y???
MsgBox "Da chuyen ve Sheet hien hanh ban dau la: " & NameShVB
End Sub
Đoạn code này tôi không thấy có vấn đề gì cả, đã chạy thử, không báo lỗi gì cả! Bạn có thể nói rõ thông báo lỗi bạn gặp đó là gì không?PHP:''-- Chuyen qua lai giua 2 Sheet??? Khong duoc??? GPE??? Sub Sh1_Shbandau2() Dim NameShVB As String NameShVB = ActiveSheet.CodeName MsgBox "Ten Sheet hien hanh trong VB la: " & NameShVB Sheet1.Activate MsgBox "Da chuyen qua Sheet dau tien" Sheets(NameShVB).Activate ''-- Dong Code nay bi Error mong cac ban gop y??? MsgBox "Da chuyen ve Sheet hien hanh ban dau la: " & NameShVB End Sub
Thử sửa lại thành:Mình có 2 Code sử dụng NameSheet Và NameVBSheet cùng thực hiện công việc tương tự nhau, Nhưng tại sao cái 1 Run OK, còn cái 2 thì Run Error, Mong bác bạn sửa lại code 2 giúp.
PHP:''-- Chuyen qua lai giua 2 Sheet Sub Sh1_Shbandau1() Dim NameSh As String NameSh = ActiveSheet.Name MsgBox "Ten Sheet hien hanh trong Excel la: " & NameSh Sheet1.Activate MsgBox "Da chuyen qua Sheet dau tien" Sheets(NameSh).Activate MsgBox "Da chuyen ve Sheet hien hanh ban dau la: " & NameSh End Sub
PHP:''-- Chuyen qua lai giua 2 Sheet??? Khong duoc??? GPE??? Sub Sh1_Shbandau2() Dim NameShVB As String NameShVB = ActiveSheet.CodeName MsgBox "Ten Sheet hien hanh trong VB la: " & NameShVB Sheet1.Activate MsgBox "Da chuyen qua Sheet dau tien" Sheets(NameShVB).Activate ''-- Dong Code nay bi Error mong cac ban gop y??? MsgBox "Da chuyen ve Sheet hien hanh ban dau la: " & NameShVB End Sub
Sub Sh1_Shbandau2()
Dim NameShVB As Worksheet
Set NameShVB = ActiveSheet
MsgBox "Ten Sheet hien hanh trong VB la: " & NameShVB.CodeName
Sheet1.Activate
MsgBox "Da chuyen qua Sheet dau tien"
NameShVB.Activate
MsgBox "Da chuyen ve Sheet hien hanh ban dau la: " & NameShVB.CodeName
End Sub