Sheet mà ta đang "đứng" gọi là ActiveSheetCho em hỏi Code dùng để hiện tên Sheet mà ta "đang đứng".
.
Để Add sheet, đương nhiên phải kiểm tra sự tồn tại của nó trước. Tuy nhiên vẫn còn phải thêm 1 công đoạn kiểm tra tính hợp lệ của tên mà ta định đặt cho sheetEm xin hỏi chút nữa: Cách kiểm tra Sheet!A có tồn tại chưa, nếu chưa tồn tại thì thêm nó vào.
Function SheetExist(ByVal WshName As String) As Boolean
On Error Resume Next
SheetExist = Not ThisWorkbook.Sheets(WshName) Is Nothing
End Function
Function isValidWshName(ByVal WshName As String) As Boolean
Dim tmp As String
If Len(WshName) <= 31 And Len(WshName) Then
With CreateObject("VBScript.RegExp")
.Global = True
.Pattern = "[\\:\][/?*]"
tmp = .Replace(WshName, "")
End With
isValidWshName = (Len(tmp) = Len(WshName))
End If
End Function
Đơn giản bạn dùng code sau:Cho em hỏi Code dùng để hiện tên Sheet mà ta "đang đứng".
Sub tcc()
msgbox (ActiveSheet.Name)
End Sub
Sub AddSheet()
On Error GoTo Them
Sheets("KH2").Select
Exit Sub
Them:
With Sheets.Add
.Name = "KH2"
End With
End Sub
Sub AddSheet()
On Error GoTo Thoat
With Sheets.Add
.Name = "KH2"
End With
Thoat:
End Sub
Hàm kiểm tra sự tồn tại có thể viết như thế này:Sheet mà ta đang "đứng" gọi là ActiveSheet
Vậy tên của ActiveSheet đương nhiên là ActiveSheet.Name rồi
Để Add sheet, đương nhiên phải kiểm tra sự tồn tại của nó trước. Tuy nhiên vẫn còn phải thêm 1 công đoạn kiểm tra tính hợp lệ của tên mà ta định đặt cho sheet
Code gồm 2 phần:
1> Kiểm tra sự tồn tại
2> Kiểm tra tính hợp lệPHP:Function SheetExist(ByVal WshName As String) As Boolean On Error Resume Next SheetExist = Not ThisWorkbook.Sheets(WshName) Is Nothing End Function
Nếu SheetExist(Tên Sheet) = False và isValidWshName(Tên sheet) = True thì có thể thêm sheet rồiPHP:Function isValidWshName(ByVal WshName As String) As Boolean Dim tmp As String If Len(WshName) <= 31 And Len(WshName) Then With CreateObject("VBScript.RegExp") .Global = True .Pattern = "[\\:\][/?*]" tmp = .Replace(WshName, "") End With isValidWshName = (Len(tmp) = Len(WshName)) End If End Function
Việc thêm sheet là chuyện của bạn (quá đơn giản)
Function SheetExist(ByVal WshName As String) As Boolean
SheetExist = Evaluate("ISREF('" & WshName & "'!A1)")
End Function
Function isValidWshName(ByVal WshName As String) As Boolean
If Len(WshName) > 31 Or WshName = "" Then Exit Function
With CreateObject("VBScript.RegExp")
.Pattern = "[\\:\][/?*]"
isValidWshName = Not .Test(WshName)
End With
End Function
Hàm dùng Evaluate tôi không khoái lắm (vì chỉ xài được trên Excel, không xài được cho các ứng dụng khác)Hàm kiểm tra sự tồn tại có thể viết như thế này:
Hàm kiểm tra tính hợp lệ có thể rút gọn lại như thế này:PHP:Function SheetExist(ByVal WshName As String) As Boolean SheetExist = Evaluate("ISREF('" & WshName & "'!A1)") End Function
PHP:Function isValidWshName(ByVal WshName As String) As Boolean If Len(WshName) > 31 Or WshName = "" Then Exit Function With CreateObject("VBScript.RegExp") .Pattern = "[\\:\][/?*]" isValidWshName = Not .Test(WshName) End With End Function
Sub Test()
Dim Sh As Worksheet
On Error GoTo Them
Set Sh = Sheets("KH3")
MsgBox "Sheet KH3 da co!"
Exit Sub
Them:
Set Sh = Sheets.Add
Sh.Name = "KH3"
End Sub
Hàm dùng Evaluate tôi không khoái lắm (vì chỉ xài được trên Excel, không xài được cho các ứng dụng khác)
Cái đó chưa chắc!Thì ta đang viết hàm kiểm tra sự tồn tại của Sheet mà anh. Đương nhiên là dùng trên Excel rồi.