Нежелательное дублирование рабочего листа VBA

#excel #vba

#превосходить #vba

Вопрос:

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

Как я могу заставить его копировать и отсоединять только листы в формуле, а не всю книгу целиком?

 Private Sub CommandButton1_Click()   ' Plain_Copy Macro '  Sheets("PROCUREMENT").Visible = True  Sheets("Request").Visible = True  Sheets("LISTS").Visible = True  Sheets("Copy").Visible = True   Dim TheActiveWindow As Window  Dim TempWindow As Window  Dim ws As Worksheet  With ActiveWorkbook  Set TheActiveWindow = ActiveWindow  Set TempWindow = .NewWindow  .Sheets(Array("REQUESTOR", "PROCUREMENT", "Request", "LISTS", "Copy")).Copy   Application.ScreenUpdating = False  For Each ws In ActiveWorkbook.Worksheets  With ws.UsedRange  .Copy  .PasteSpecial xlPasteFormulasAndNumberFormats  End With  TempWindow.Close  Next ws   Application.CutCopyMode = False  Application.ScreenUpdating = True  End With    

Комментарии:

1. Какой именно из них является «копией исходного рабочего листа»? Примечание: вы продолжаете использовать «формулу», но это звучит так, как будто вы имеете в виду «код».

2. Извини, чувак, я все еще новичок в программировании. Все это самоучка, как вы, вероятно, можете сказать, лол, вам нужен был исходный код, который я использовал? или вы спрашиваете, какой раздел этого кода копирует оригинал

3. Правильно, итак, в новой рабочей книге, как называется дополнительный, ненужный лист?

4. .Sheets(Array("REQUESTOR", "PROCUREMENT", "Request", "LISTS", "Copy")).Copy создает новую рабочую книгу.

5. У меня было такое чувство, что в этом и была проблема.. Большое спасибо, Бен. Я удалил их сегодня утром, когда настраивал это, и он продолжал выдавать коды ошибок. Теперь все работает нормально