cio_new
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору ПРивет! Есть задачка: существует книга ексель с листами, каждый из которых разделен на 2 области. В одной области вводится значение (например, в одну ячейку - ФИО, во вторую - Отдел и т.д.), во второй области эти значения стандартизируются (приводятся к верхнему регистру, усекаются и т.д.). Существует кнопка, при нажатии на которую (после заполнения листов информацией) все листы книги разносятся по определенным директориям и сохраняются там в виде отдельных ексель файлов с одним конкретным листом. Вопрос: необходим макрос, который будет помимо формирования ексель файлов делать ЦСВ файл с разделителями, но сохранять в него ТОЛЬКО данные из второй области каждого листа. ВБА вижу 2-й раз в жизни 8) Вот что смог сделать: With Worksheets(sTab).Range("a1:ea2") ' определяем начало второй области Set c = .Find("start cell", LookIn:=xlValues) If Not c Is Nothing Then firstAddress = c.Address() End If End With With Worksheets(sTab).Range("a5:ea200") ' ищем окончание области для выделения Set cc = .Find("end cell", LookIn:=xlValues, LookAt:=xlWhole, SearchDirection:=xlPrevious) If Not cc Is Nothing Then lastAddress = cc.Address() Do Set cc = .FindNext(cc) Loop While Not cc Is Nothing And cc.Address <> lastAddress End If End With Range(firstAddress, lastAddress).Select Sheets(sTab).Select Sheets(sTab).Copy ActiveWorkbook.SaveAs Filename:= _ sPath & "\" & sTab & " v1.0.xls", _ FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False ActiveWorkbook.Close (True) Этот пример сохраняет отдельный лист в отдельный файл, но оставляет все содержимое листа и просто выделяет вторую область, вместо того, что бы сформировать лист и вставить в него диапазон Range(firstAddress, lastAddress). Как это сделать средствами ВБА?? Знаю, что здесь не хватает самую малость, но не могу найти (или не правильно применяю) эти функции 8( ЗЫ: Если прописывать Range(firstAddress, lastAddress).Select Range(firstAddress, lastAddress).Copy то книга просто копируется в первую директорию. Чего тут не хватает (ну не знаю я ВБА, изучить - времени нет 8()? |