Chào các bạn. Code lấy tên sheet hiện hành là: Lần chỉnh sửa cuối: 2/9/08
Cảm ơn ndu !
Bạn chạy thử Sub này xem! Mã:
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.
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
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 Sub thu[] Sheets["KL"].Name = ActiveSheet.CodeName End Sub
Lần chỉnh sửa cuối: 14/3/15
- #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!
- #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.
- #7
Bạn đưa tên file vào Workbooks["yeudoi"].Sheets["doiyeu"].Active
- #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...
- #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
- #10
Mình chưa chạy thử nhưng nghĩ đaọn code này không được. Thì bạn sửa lại chổ SheetName thành SheetCodeName... Có sao đâu! 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
Chọn như vậy hình như la chọn theo tên sheet [name] chứ không phải theo codename
Ví dụ:
- #11
Thì bạn sửa lại chổ SheetName thành SheetCodeName... Có sao đâu! Hic , không biết bạn có chạy thử đoạn code nào giống như vậy chưa.
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
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.
cadafi
Working with mind, Living with nature!
- #12
Không được rồi bạn ơ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:
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ò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
- #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.
- #14
Để mình up file lên Book1.xls 15 KB · Đọc: 32 Book2.xls 23.5 KB · Đọc: 36
Bạn xem giúp.
- #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
- #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] 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:
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
- #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
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?
- #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