Страницы: 1
RSS
Макрос. Имя листа равно текст ячейки, Макрос копирует строку из другой книги с листа, название которого указано в определенной ячейке листа книги
 
Здравствуйте! Начала писать макрос для упрощения работы и застопорилась в самом начале. Прошу помочь.
Мне нужно скопировать ячейки, которые нужно будет найти по условию наличия заданных значений в в определенном столбце известной книги, а вот листы будут разные. Название листа я буду задавать в ячейке активной страницы книги в которую как раз и нужно скопировать ячейки. Пока еще нет файла, который можно было бы сбросить для понимания. Просмотрела существующие темы форума, нашла похожие, но без макроса, а формулы мне не подойдут, так как дынных будет очень много.
Вот что набросала:
Sub объем()
    Dim WB As Workbook 'книга из которой буду копировать
   Dim WB2 As Workbook 'книга в которую нужно копировать и где находится название листа
 
   Dim Sht As Sheets 'лист с которого нужно копировать
   Dim Sht2 As Sheets 'лист на котором находится название листа с которого нужно скопировать ячейки
   Set WB = Application.Workbooks.Open("C:\Users\SERLIK\Desktop\ВОЗДУХ\Ж СМК Э-002э_Журнал Лабораторного учета пром.выбросов в атмосферу\Ж СМК Э-002.2э_Журнал Лабораторного учета пром.выбросов в атмосферу.xlsb")
   Set WB2 = Application.Workbooks.Open("C:\Users\SERLIK\Desktop\ВОЗДУХ\Ж СМК Э-002э_Журнал Лабораторного учета пром.выбросов в атмосферу\Ж СМК Э-002.3э_Журнал Лабораторного учета пром.выбросов в атмосферу.xlsb")
   Set Sht2 = WB2.Sheets("1").Range("i1").Select
 
   
Set Sht = WB.Sht2.Select

End Sub
 
Код
Sub объем()
   Dim WB As Workbook 'книга из которой буду копировать
   Dim WB2 As Workbook 'книга в которую нужно копировать и где находится название листа
 
   Dim Sht As Sheets 'лист с которого нужно копировать
   Dim Sht2 As Sheets 'лист на котором находится название листа с которого нужно скопировать ячейки
   Set WB = Application.Workbooks.Open("C:\Users\SERLIK\Desktop\ВОЗДУХ\Ж СМК Э-002э_Журнал Лабораторного учета пром.выбросов в атмосферу\Ж СМК Э-002.2э_Журнал Лабораторного учета пром.выбросов в атмосферу.xlsb")
   Set WB2 = Application.Workbooks.Open("C:\Users\SERLIK\Desktop\ВОЗДУХ\Ж СМК Э-002э_Журнал Лабораторного учета пром.выбросов в атмосферу\Ж СМК Э-002.3э_Журнал Лабораторного учета пром.выбросов в атмосферу.xlsb")
   Set Sht2 = WB2.Sheets("1") '.Range("i1").Select
 
   Set Sht = WB.Sheets(Sht2.Range("i1").Value)

End Sub
Так?
 
Цитата
МатросНаЗебре: Dim Sht As Sheets
As Sheet (единственное число), а лучше As WorkSheet  :)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
написал:
As Sheet (единственное число), а лучше As WorkSheet
Согласен. Я вносил правки в код от Лидии без отладки, получилось так себе  :)  
 
МатросНаЗебре, а я не заметил, что это из её кода  :D
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Jack Famous написал:
As Sheet
так вообще не получится объявить, т.к. нет такого представления :) Есть только коллекция Sheets, которую нельзя применить к единственному листу без индекса. Поэтому вот это как раз то, что нужно:
Цитата
Jack Famous написал:
а лучше As WorkSheet
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Спасибо!  
Страницы: 1
Наверх