Tên Sheet hiện hành là gì

Tên Sheet hiện hành là gì

  • #2

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: 2/9/08

Tên Sheet hiện hành là gì

  • #3

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

  • #4

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: 14/3/15

Tên Sheet hiện hành là gì

  • #5

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 ạ :

Thân!

Tên Sheet hiện hành là gì

  • #6

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ên Sheet hiện hành là gì

  • #7

Bạn đưa tên file vào

Workbooks("yeudoi").Sheets("doiyeu").Active

Tên Sheet hiện hành là gì

  • #8

Bạn đưa tên file vào

Workbooks("yeudoi").Sheets("doiyeu").Active

Các đại ca cứ hay sơ ý: Đáng lý là... .Activate thì lại ghi là .Active
Em cháu nhắm mắt làm theo trật lất hết
Ẹc... Ẹc...

Tên Sheet hiện hành là gì

  • #9

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

Tên Sheet hiện hành là gì

  • #10

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

Tên Sheet hiện hành là gì

  • #11

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.

Tên Sheet hiện hành là gì

cadafi

Working with mind, Living with nature!

  • #12

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: 4/9/08

Tên Sheet hiện hành là gì

  • #13

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.

Tên Sheet hiện hành là gì

  • #14

Để mình up file lên
Bạn xem giúp.

  • Book1.xls

    15 KB · Đọc: 32

  • Book2.xls

    23.5 KB · Đọc: 36

  • #15

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: 14/3/15

Tên Sheet hiện hành là gì

  • #16

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

  • #17

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

  • #18

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 Sh2_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 Sh2_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: 22/12/08

Tên Sheet hiện hành là gì

cadafi

Working with mind, Living with nature!

  • #19

PHP:

''-- Chuyen qua lai giua 2 Sheet??? Khong duoc??? GPE???
Sub Sh2_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?

Tên Sheet hiện hành là gì

  • #20

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 Sh2_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 Sh2_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 Sh2_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: 22/12/08