Я работал над кодом для всплывающего окна с сообщением, в котором вы можете ввести имя листа, а затем он создаст новый лист в конце всех остальных с таким именем.
С помощью googling я смог создать код, который выскакивает inputbox
, где я пишу нужное имя для нового листа и с помощью оператора with создаёт его в конце всех мои другие листы.
У меня проблемы с оператором if, который должен сказать, что если этого имени не существует, продолжайте выполнение кода и, если имя существует, выйдите из sub (не продолжайте обработку кодов ниже). Я заставил If Not xSht Is Nothing Then
работать, записав его как If xSht Is Nothing Then
, но это создает два оператора if, поэтому первая часть полностью обнуляется. Я также попытался написать его как оператор else, но затем он перепрыгивает через msgbox
и все еще создает новый лист из-за оператора with, приведенного ниже.
Dim ws As Worksheet
Dim xName As String
Dim xSht As Object
Set xSht = Sheets(xName)
xName = InputBox("Enter Sheet Name")
If xName = "" Then Exit Sub
If Not xSht Is Nothing Then
MsgBox ("Name already exists")
Exit Sub
End If
With ThisWorkbook 'Adds new sheet with the name it has been given
Set ws = .Sheets.Add(After:=.Sheets(.Sheets.Count))
ws.Name = xName
End With
<More code>