Sheets("GPE").Name ="Mr Okebab"
Sheets(1).Name ="Mr Okebab"
Mr Okebab đã viết:Để biết được tên của Sheet nào đó trong VBA thì ta dùng :Sheets("GPE").CodeNameTuy nhiên để thay đổi tên của Sheet đó trong VBA thì ta phải làm cách nào ??
Cảm ơn nhiều.
Thân!
Bị lỗi bác ạ.SoiBien đã viết:Baw
Bắp thử cái này xem
Application.VBE.ActiveVBProject.VBComponents(ActiveWorkbook.Sheets("GPE").CodeName).Name = "SB"
Thân
LearnMore đã viết:Hôm nay anh uống CF chưa vậy?
Đổi tên GPE thành MrOkBap:
Sheets("GPE").Name = "MrOkBap"
LM
Cảm ơn nhiều, tuy nhiên ý mình là đổi tên Sheet hiển thị trong VBA và bằng VBA cơ.DAT2007 đã viết:Để lựa chọn Sheet không phụ thuộc vào tên Sheet có thể dùng thứ tự của Sheets để lựa chọn. Ví dụ Sheets(1) ; Sheets(2) ... như vậy khi thay đổi tên Sheets thì không bị lỗi
Còn nếu để đổi tên Sheet trong VBA thì có thể dùng lệnh
Code:
Sheets("GPE").Name ="Mr Okebab"
Sheets(1).Name ="Mr Okebab"
TuanVNUNI đã viết:Worksheet.CodeName (tên trong VBE,trong code) có thuộc tính là "Read-Only", vì vậy nó không thể gán giá trị trong code.
Worksheet.Name có thuộc tính cả ghi và đọc nên có thể gán (thực ra tên sheet do người dùng quản lý nên Excel cho phép thay đổi trong code).
Nói chung Name của đối tượng hay Class không thể thay đổi trong code mà chỉ có thể thay đổi bằng tay khi thiết kế. Như các Name của Commandbutton, ListBox, ComboBox,...là không thể thay đổi trong code.
Mình nghĩ có thể (không chắc lắm) có một cách là can thiệp trong VBAProject, cách này mình chưa thử bao giờ.
Mr Okebab đã viết:Em nghĩ là có cách đổi vì nó cho ta đổi = tay nghĩa là có thể đổi được.
Tuy nhiên đổi bằng cách nào thì . . . em không biết.
Thân!
SoiBien đã viết:SAo mình làm được nhỉ, Bap thử fiel này xem, nó change codename của sheet GPE thành MrOkeBap.
TuanVNUNI đã viết:Không phải cứ động vào bằng tay được thì code cũng được đâu. Trong lập trình người ta phân biệt "Design time" và "Run time". Khi mình đặt tên biến tên module, tên class, tên thủ tục...đó là lúc "Design Time", cho phép sửa làm bằng tay. Khi chạy gọi là "Run time" thì những việc làm lúc "design time" không được. Bạn không thể thay đổi tên biến khi đang chạy, không thể thay tên hàm khi đang chạy, Sheet là một class là một đối tượng thì tên của nó cũng khó mà thay đổi được .
Mr Okebab đã viết:Vẫn lỗi như thế. Hay do mình dùng chú 2007 ???
Chú 2003 tìm mãi chẳng thấy. Để mai test xem sao.
Ai có 2003 test giùm cái.
Cảm ơn cậu nhiều.
Thân!
levanduyet đã viết:Nếu chúng ta xem kỹ lại đoạn code của SoiBien và ý kiến của Tuân, cũng như trong Help thì chúng ta giải thích thế nào?
LVD
Mr Okebab đã viết:Để biết được tên của Sheet nào đó trong VBA thì ta dùng :
Sheets("GPE").CodeNameTuy nhiên để thay đổi tên của Sheet đó trong VBA thì ta phải làm cách nào ??
Cảm ơn nhiều.
Thân!
ttphong2007 đã viết:Anh Bắp dùng thử code sau nha, lưu ý:
1. Vào Tools | Macro | Security | Trusted Sources | chọn Trust access to Visual Basic Project
2. Trong VBE vào Tools | Reference | chọn Microsoft Visual Basic for Applications Extensibility 5.3
Xem thêm = google với từ khóa "VBIDE Programming" ==> đọc mệt xỉu
TP.
Sub DoitentrongVBE()
Dim i As Integer
Dim vbCom As VBComponent
i = 10
For Each vbCom In ThisWorkbook.VBProject.VBComponents
If vbCom.Type = vbext_ct_Document Then
vbCom.Name = "MrOkeBap" & i
i = i + 1
End If
Next vbCom
End Sub
Mr Okebab đã viết:Thật là hay đó, tuy nhiên Code của cậu sẽ thay luôn tên của Module.