2013-12-17 3 views
2

У меня возникла какая-то проблема в отношении excel vba, когда я вхожу в эту функцию, чтобы создать новый рабочий лист и назвал его. Но он генерирует дополнительные новые рабочие листы. Ниже приведена кодировка.Появляется дополнительный лист

Function add_sheet_by_branch(ByVal branch As String) As String 


    For rep = 1 To (Worksheets.Count) 
     If LCase(Sheets(rep).name) = LCase(branch) Then 
      MsgBox (branch & " " & "already exists!") 
     Else 
      Sheets.Add after:=Sheets(Sheets.Count) 
     End If 
    Next 
    Sheets(ActiveSheet.name).name = branch 
    Sheets.Delete 
    add_sheet_by_branch = name 
End Function 

Спасибо за помощь. :)

+0

Сколько листов вы хотите создать? 1? – sam092

+0

более 10 листов ++ – user1928481

+1

Ваш код имеет логическую ошибку. Вы прокручиваете каждый лист, и если имя этого листа не равно 'branch', вы создаете новый лист – sam092

ответ

0

Это то, что вы пытаетесь?

Вы создаете лист каждый раз, когда имя листа не совпадает.

+0

Привет, Маршрут, после того, как я реализовал исправленный код, он работает хорошо. Но просто некоторые путают в моем мозгу. Почему окно сообщения продолжает выходить, а не выходить за один раз? Благодарю. – user1928481

+0

Используете ли вы эту функцию как функцию, определенную пользователем? то есть в ячейке excel? –

+1

Если да, то измените строку 'MsgBox (branch &" "&" уже существует! ")' To 'add_sheet_by_branch = branch &" "&" уже существует! "' –

Смежные вопросы