2015-03-31 2 views
0

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

  1. Найти книгу, в которой есть название листа, говорят: «РАБОТНИК».
  2. Проверьте, нет ли названия листа в описании книги «КОМПАНИЯ», удалите, если есть.
  3. Скопируйте лист «КОМПАНИЯ» из Активной книги (не активный лист) в вышеуказанную книгу.

Я достигает до сих пор, но не знаете, как скопировать неактивный-лист «КОМПАНИЯ» из активной книги в книгу, которую мы находим в пункте 1.

Любое предложение будет высоко ценится ,

Application.DisplayAlerts = False 
    For Each wb In Application.Workbooks 
     For Each ws In wb.Sheets 
     If ws.Name = "EMPLOYEE" Then wb.Sheets("COMPANY").Delete 
     Next ws 
    Next wb 
    Application.DisplayAlerts = True 
+0

назначьте активирующую книгу a var перед тем, как начать, а затем верните ее, как обычно, вам нужно также проверить, существует ли КОМПАНИЯ, прежде чем пытаться удалить ее. –

ответ

0

По активной книги вы имеете в виду один с модулем кода выполняется операция? Если это так, то ThisWorkbook может использоваться для ссылки на него как на родителя Компания лист, который вы хотите скопировать в книгу, которую вы только что удалили Компания лист из.

Application.DisplayAlerts = False 
    On Error Resume Next 
    For Each wb In Application.Workbooks 
     For Each ws In wb.Sheets 
      If ws.Name = "EMPLOYEE" Then 
       wb.Sheets("COMPANY").Delete 
       ThisWorkbook.Sheets("Company").Copy Before:=wb.Sheets(1) 
      End If 
     Next ws 
    Next wb 
    Application.DisplayAlerts = True 

Я нахожу ThisWorkbook быть более определенными, чем ActiveWorkbook особенно в таких операциях, как это, где фокус может (по умолчанию) будет изменен на книги, получающей копию компаний листа.

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

+0

Спасибо, это работает как шарм. – Chito