Копировать листы: Имя «ХХ» уже существует. Нажмите «Да», чтобы использовать эту версию имени, или «Нет», чтобы переименовать версию «XX», которую вы перемещаете или копируете. - PullRequest
1 голос
/ 05 апреля 2020

Я работаю над кодом, чтобы сделать копии рабочих листов вместе с именами в одной и той же рабочей книге, а затем продвинуть область действия в рабочую книгу.

Следующий код используется для создания копий листа

For A = 1 To 8
    For B = 1 To 3   
            Set ws = Sheets(tabnames(A) & B)
            ws.Copy After:=Sheets(tabnames(A) & B)
            ActiveSheet.Name = tabnames(A) & B + 1 
      Next B
Next A

Прикрепленный код используется для изменения области имени в книге: { ссылка }

Код отлично работает при первом запуске. После выполнения, когда я пытаюсь выполнить повторный запуск, программа возвращает сообщение об ошибке:

Имя «XX» уже существует. Нажмите «Да», чтобы использовать эту версию имени, или «Нет», чтобы переименовать версию «XX», которую вы перемещаете или копируете.

При ручном копировании листов появляется то же сообщение. Меня смущает тот же код, который хорошо работает, когда я снова открываю WB. Это означает, что после каждого запуска я должен закрыть и открыть WB для выполнения следующего запуска. Есть ли решение для этого? Возможно, что-то вроде refre sh или reset?

Я попытался заморозить предупреждения на дисплее, но потом заметил, что диапазоны имен не копируются вместе с листами.

Также я попытался другие коды, упомянутые в ветке выше для продвижения области имен и заканчивающиеся тем же самым.

Кроме того, это работает, когда я копирую второй последний лист (вручную или с помощью кода ниже)

Set ws = Sheets(tabnames(A) & B-1)    
ws.Copy After:=Sheets(tabnames(A) & B)

Пожалуйста, сообщите.

1 Ответ

0 голосов
/ 07 апреля 2020

Ошибка, кажется, исчезает go, когда я делаю копии родительского листа. Кажется, решено на данный момент. Но все же было бы полезно, если бы кто-то мог помочь мне понять, почему я не могу сделать вновь созданный лист без перезапуска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...