Lấy tên sheet hiện hành (tên trong VBA)

Liên hệ QC

dtExcell

Thành viên mới
Tham gia
3/8/08
Bài viết
16
Được thích
1
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.
 
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.
Code lấy tên sheet hiện hành là:
ActiveSheet.Name
Còn tên sheet trong VBA (ngừoi ta gọi là Sheet code name), bạn dùng code này:
ActiveSheet.CodeName
 
Lần chỉnh sửa cuối:
Upvote 0
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
 
Upvote 0
Bạn chạy thử Sub này xem!
Mã:
 Sub thu() Sheets("KL").Name = ActiveSheet.CodeName End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
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

Thế này bạn ạ :

PHP:
S001.Active

Thân!
 
Upvote 0
Thế này bạn ạ :

PHP:
S001.Active
Thân!
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.
 
Upvote 0
Upvote 0
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
Thì bạn sửa lại chổ SheetName thành SheetCodeName... Có sao đâu!
Ví dụ:
Workbooks("yeudoi").Sheets("doiyeu").Activate
Là đang chọn theo sheet name, bạn sửa thành:
Workbooks("yeudoi").S001.Activate
Với S001 là Sheet Code name trong WorkBook yeudoi
 
Upvote 0
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
Hic , không biết bạn có chạy thử đoạn code nào giống như vậy chưa.
Chứ mình làm như vậy không thể chạy được.
Bạn nào biết giúp mình với.
Cảm ơn mấy bạn trước.
 
Upvote 0
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.

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

Còn cụ thể file của bạn chính xác là cần thêm gì nữa thì chuyển file lên để mọi người giúp. Nhìn chung mình cũng bắt đầu khó hiểu ý của bạn rồi.
 
Lần chỉnh sửa cuối:
Upvote 0
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
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.
 
Upvote 0
Để mình up file lên
Bạn xem giúp.
 

File đính kèm

  • Book1.xls
    15 KB · Đọc: 32
  • Book2.xls
    23.5 KB · Đọc: 37
Upvote 0
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
 
Lần chỉnh sửa cuối:
Upvote 0
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
Cần gì phải For nhỉ? Cứ S001.Select hoặc S001.Activate là được rồi...
Nếu sợ báo lổi vì S001 không tồn tại thì thêm On Error Resume Next vào
 
Upvote 0
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.
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.
PHP:
Sub Test_pmh()
Workbooks("Book1.xls").Sheets("Sheet1").Activate
End Sub
 
Upvote 0
Làm sao de 2 code cùng Run OK

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
 
Lần chỉnh sửa cuối:
Upvote 0
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
Đ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?
 
Upvote 0
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
Thử sửa lại thành:
PHP:
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
Lúc đầu tôi chạy code cũng báo lỗi đúng ngay dòng mà bạn nói ---> Giờ chạy lại thì bình thường ---> Chẳng hiểu nữa
---------------------
Bạn lưu ý: Sheet1 không phải là Sheet đầu tiên đâu nha
Sheets(1) mới là sheet đầu tiên nè
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom