Private Sub CommandButton1_Click()
Dim sourceworkbook As Workbook
Dim currentworkbook As Workbook
Set currentworkbook = ThisWorkbook
Set sourceworkbook = Workbooks.Open("C:\Users\Robert Sindo\Desktop\JMI Inventory Analyst Master Files\JYKO\JYKO SKU Masterlist.xlsm")
sourceworkbook.Sheets("Quickbook").Copy after:=currentworkbook.Sheets("QB Uploader")
Sheets(Sheets.Count).Name = InputBox("ASSIGN A NEW NAME:")
If sourceworkbook.Value = "" Then
MsgBox "There is no data in your selection."
Exit Sub
Else
sourceworkbook.Sheets("Quickbook").Select
End If
sourceworkbook.Close
最佳答案
现有或无效的工作表名称(错误处理)
Option Explicit
Private Sub CommandButton1_Click()
Dim currentworkbook As Workbook: Set currentworkbook = ThisWorkbook
Dim sourceworkbook As Workbook
Set sourceworkbook = Workbooks.Open("C:\Users\Robert Sindo\Desktop\JMI Inventory Analyst Master Files\JYKO\JYKO SKU Masterlist.xlsm")
sourceworkbook.Sheets("Quickbook").Copy After:=currentworkbook.Sheets("QB Uploader")
' If copying after the last sheet, rather use the following:
'sourceworkbook.Sheets("Quickbook").Copy After:=currentworkbook.Sheets(currentworkbook.Sheets.Count)
sourceworkbook.Close SaveChanges:=False
Dim NewName As String: NewName = InputBox("ASSIGN A NEW NAME:")
Dim ErrNum As Long
On Error Resume Next ' there can be two reasons: existing name and invalid name (emptystring, more than 31 chars...)
currentworkbook.Sheets(currentworkbook.Sheets.Count).Name = NewName
ErrNum = Err.Number
On Error GoTo 0
If ErrNum <> 0 Then
Application.DisplayAlerts = False
currentworkbook.Sheets(currentworkbook.Sheets.Count).Delete
Application.DisplayAlerts = True
MsgBox "The name '" & NewName & "' could not be used.", vbCritical
Exit Sub
'Else
'MsgBox "Sheet renamed.", vbInformation
End If
End Sub
关于excel - 如果未输入名称或为空,则应发送警告消息,然后结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71370746/