2014-09-29 66 views

回答

3

該代碼會做..使用輸入框

Sub renameSheet() 
    Dim NewName As String 
    NewName = InputBox("What Do you Want to Name the Sheet1 ?") 
    Sheets("Sheet1").Name = NewName 
End Sub 
+0

喜歡這個。感謝 – 2014-09-29 07:41:06

+1

+1簡單偉大的答案;) – 2014-09-29 07:48:20

+0

與不正確的名稱可能可能遇到各種各樣的難題 – whytheq 2014-09-29 11:33:17

0

試試這個代碼:

Private Sub CommandButton1_Click() 
Dim sheetname As String 
sheetname = Me.TextBox1.Value 
Sheets("Sheet1").Name = sheetname 
End Sub 
0

試試這個:(您可以分配例如快捷鍵,按ctrl + d來運行這個宏,而片是打開的)

Sub RenameSheet() 
Dim strSheetName As String 
strSheetName = InputBox("enter new name of Sheet", "Editing Sheet Name") 
'With ThisWorkbook.Worksheets(1)  'use this if want to rename again and again and you know the sheet no = 1 
'With ThisWorkbook.Worksheets("Sheet1") ' use this if want to rename once 
With ThisWorkbook.ActiveSheet   'use this if want to rename any activesheet 
.Name = strSheetName 
End With 
End Sub 
1

參考:http://www.mrexcel.com/forum/excel-questions/538208-check-invalid-worksheet-name.html

此代碼是強大的:

Sub TestSheetname() 

Dim mySheetName$ 
mySheetName = InputBox("Enter proposed sheet name:", "Sheet name") 
If mySheetName = "" Then 
MsgBox "You did not enter anything or you hit Cancel.", 64, "No sheet name was entered." 
Exit Sub 
End If 

'If the length of the entry is greater than 31 characters, disallow the entry. 
If Len(mySheetName) > 31 Then 
MsgBox "Worksheet tab names cannot be greater than 31 characters in length." & vbCrLf & _ 
"You entered " & mySheetName & ", which has " & Len(mySheetName) & " characters.", , "Keep it under 31 characters" 
Exit Sub 
End If 

'Sheet tab names cannot contain the characters /, \, [, ], *, ?, or :. 
'Verify that none of these characters are present in the cell's entry. 
Dim IllegalCharacter(1 To 7) As String, i As Integer 
IllegalCharacter(1) = "/" 
IllegalCharacter(2) = "\" 
IllegalCharacter(3) = "[" 
IllegalCharacter(4) = "]" 
IllegalCharacter(5) = "*" 
IllegalCharacter(6) = "?" 
IllegalCharacter(7) = ":" 

For i = 1 To 7 
If InStr(mySheetName, (IllegalCharacter(i))) > 0 Then 
MsgBox "You used a character that violates sheet naming rules." & vbCrLf & vbCrLf & _ 
"Please re-enter a sheet name without the ''" & IllegalCharacter(i) & "'' character.", 48, "Not a possible sheet name !!" 
Exit Sub 
End If 
Next i 

'Verify that the proposed sheet name does not already exist in the workbook. 
Dim strSheetName As String, wks As Worksheet, bln As Boolean 
strSheetName = Trim(mySheetName) 
On Error Resume Next 
Set wks = ActiveWorkbook.Worksheets(strSheetName) 
On Error Resume Next 
If Not wks Is Nothing Then 
bln = True 
Else 
bln = False 
Err.Clear 
End If 

'History is a reserved word, so a sheet cannot be named History. 
If UCase(mySheetName) = "HISTORY" Then 
MsgBox "A sheet cannot be named History, which is a reserved word.", 48, "Not allowed" 
Exit Sub 
End If 

'If the worksheet name does not already exist, name the active sheet as the InputBox entry. 
'Otherwise, advise the user that duplicate sheet names are not allowed. 
If bln = False Then 
Worksheets.Add.Name = strSheetName 
MsgBox "A new sheet named ''" & mySheetName & "'' has been added.", 64, "Done" 
Else 
MsgBox "There is already a sheet named " & strSheetName & "." & vbCrLf & _ 
"Please enter a unique name for this sheet.", 16, "Duplicate sheet names not allowed." 
End If 

End Sub 
+0

好一個+1 :)。 – 2014-09-29 13:25:27