Добрый вечер всем форумчанам. Возникла проблема с кодом VBA (нашел на просторах инета и немного попытался переделать под свои нужды). Что имеем: Есть две экселевские книги ("книга 1" с макросом на листе "obzor" и "книга 2" с листами проектов) и из второй в первую необходимо скопировать листы, у которых имя содержит текст "Проект". Во второй книге имеются такие листы:
При выполнении макроса, выбираюфайл, нажимаю открыть, но ничего не импортируется. Почему-то кажется, что не находит листов с текстом "проект" в книге 2. Пробовал и писать "*Проект*" - результат тот же. Прошу помощи в разрешении данной проблемки.
[vba]
Код
Sub ImportSheet() Dim sImportFile As String, sFile As String Dim sThisBk As Workbook Dim impSh As Worksheet Dim vfilename As Variant Dim oNewRow As ListRow Dim svod As ListObjects
Set sThisBk = ActiveWorkbook sImportFile = Application.GetOpenFilename( _ FileFilter:="Microsoft Excel Workbooks, *.xls; *.xlsx", Title:="Импорт проекта") If sImportFile = "False" Then MsgBox "Ничего не выбрано!" Exit Sub
Else 'Из выбранного файла выделяем путь к файлу vfilename = Split(sImportFile, "\") sFile = vfilename(UBound(vfilename)) Application.Workbooks.Open Filename:=sImportFile 'Открываем файл по ссылке и ищем лист с указанным названием Set wbBk = Workbooks(sFile)
For Each impSh In wbBk.Sheets If impSh.Name Like "Проект" Then impSh.Copy after:=obzor ActiveSheet.Name = "Проект№" & (ThisWorkbook.Sheets.Count - 1) Else: End If Next impSh wbBk.Close SaveChanges:=False End If Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub
[/vba]
Добрый вечер всем форумчанам. Возникла проблема с кодом VBA (нашел на просторах инета и немного попытался переделать под свои нужды). Что имеем: Есть две экселевские книги ("книга 1" с макросом на листе "obzor" и "книга 2" с листами проектов) и из второй в первую необходимо скопировать листы, у которых имя содержит текст "Проект". Во второй книге имеются такие листы:
При выполнении макроса, выбираюфайл, нажимаю открыть, но ничего не импортируется. Почему-то кажется, что не находит листов с текстом "проект" в книге 2. Пробовал и писать "*Проект*" - результат тот же. Прошу помощи в разрешении данной проблемки.
[vba]
Код
Sub ImportSheet() Dim sImportFile As String, sFile As String Dim sThisBk As Workbook Dim impSh As Worksheet Dim vfilename As Variant Dim oNewRow As ListRow Dim svod As ListObjects
Set sThisBk = ActiveWorkbook sImportFile = Application.GetOpenFilename( _ FileFilter:="Microsoft Excel Workbooks, *.xls; *.xlsx", Title:="Импорт проекта") If sImportFile = "False" Then MsgBox "Ничего не выбрано!" Exit Sub
Else 'Из выбранного файла выделяем путь к файлу vfilename = Split(sImportFile, "\") sFile = vfilename(UBound(vfilename)) Application.Workbooks.Open Filename:=sImportFile 'Открываем файл по ссылке и ищем лист с указанным названием Set wbBk = Workbooks(sFile)
For Each impSh In wbBk.Sheets If impSh.Name Like "Проект" Then impSh.Copy after:=obzor ActiveSheet.Name = "Проект№" & (ThisWorkbook.Sheets.Count - 1) Else: End If Next impSh wbBk.Close SaveChanges:=False End If Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub
SkyPro, все верно, почему-то посмотрел в редакторе VBA на имя поля "Name" в свойствах и запуталси (только начинаю изучать макросы). Сделал как Вы посоветовали - все заработало. Спасибо.
SkyPro, все верно, почему-то посмотрел в редакторе VBA на имя поля "Name" в свойствах и запуталси (только начинаю изучать макросы). Сделал как Вы посоветовали - все заработало. Спасибо.tsap