1

У меня есть кнопка, которая запрашивает ввод и создает новую вкладку. При первом запуске он прекрасно работает, но при последующих запусках выдается эта ошибка:

Вот код:

Sub btnAddProject()
    Dim template As Worksheet
    Dim newSheet As Worksheet
    Dim newName As String


    newName = Application.InputBox("Enter Project Name")        'get name
    Worksheets("Template").Visible = True                       'Unhide template
    Set template = ActiveWorkbook.Sheets("Template")            'identify template
    template.Copy After:=Sheets(Sheets.Count)                   'create copy
    Set newSheet = ActiveSheet                                  'identify new sheet
    newSheet.Name = newName                                     'rename sheet
    'deleteNames (newSheet.Name)                                'delete copied named ranges with worksheet scope
    newSheet.Range("D2").Value = newName                        'Change header on new sheet
    Worksheets("Template").Visible = False                      'Hide template
    Worksheets("Consolidated Grid").Activate                    'switch back to dashboard
    updateProjectIndex (newName)
End Sub

Ошибка выдается на новом листе.Name = newName, и он оставляет мне лист с именем "Template (2)"

Чем это вызвано?

В случае, если это уместно, здесь есть updateProjectIndex которая просто добавляет новую строку в список проектов (в двух местах):

Sub updateProjectIndex(newName)
    Application.ScreenUpdating = False
    Sheets("Dashboard").Select

    ActiveSheet.Rows(12).Select
    Selection.Copy
    Selection.Insert Shift:=xlDown

    ActiveSheet.Range("B13").Value = newName


    Sheets("Consolidated Grid").Select

    ActiveSheet.Columns("F:F").Select
    Selection.Copy
    Selection.Insert Shift:=xlRight

    ActiveSheet.Range("G1").Value = newName


    Sheets("Dashboard").Select
    ActiveSheet.Range("B13").Select
    Application.ScreenUpdating = True
End Sub

2 ответа2

2

Ваш код работает нормально для меня, хотя мне пришлось удалить дополнительные вызовы sub (поэтому я удалил updateProjectIndex(newName) и Worksheets("Consolidated Grid").Activate

Для отладки попробуйте этот код в новом Excel на вашем ПК, чтобы увидеть, связана ли проблема с книгой, связанной с этой книгой или Excel

Проблема в коде в событии

Попробуйте закомментировать эти 2 строки кода и посмотрите, сохраняется проблема или нет. Если нет проблем, раскомментируйте по одному, пока не увидите ошибку, и устраните ее таким образом.

Я бы порекомендовал вам сделать это с копией вашего файла, чтобы вы могли разбить его столько, сколько захотите!

1

Я думаю, что я понял это, хотя я не уверен почему. У меня был следующий код в моей подпрограмме Workbook_Open :

   Worksheets("Dashboard").Activate
    If InStr(Application.ActiveWorkbook.Path, "sharepoint.com") Then
        Range("1:1").Select
        Selection.EntireRow.Hidden = True

    Else
        Range("1:1").Select
        Selection.EntireRow.Hidden = False
    End If

Намерение состояло в том, чтобы удостовериться, что люди знали, что они открывали автономную версию. Я предполагаю, что конфликт был с Worksheets.Activate здесь? Может быть, кто-то может объяснить.

В любом случае, удаление этого, похоже, решило проблему на 100%.

Обновление: заменен весь код, кроме .Activate и он все еще работает. Я предполагаю, что активация книги из собственной подпрограммы Workbook_Open вызывала какой-то цикл?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .