|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - [решено] Разбор листа Excel по строкам в отдельные файлы |
|
|
VBA - [решено] Разбор листа Excel по строкам в отдельные файлы
|
|
Ветеран Сообщения: 867 |
С VBA сталкиваюсь в первый раз, но тут слезно попросили помочь и я согласился. Цель такая - раздербанить Excel-евский файл по строкам в отдельные файлы, причем у каждого файла должна быть шапка (первая строка) из оригинального файла. Примеров скриптов выполняющих такую работу в интернете навалом, но все они выдергивают только по одной строке. Понадергав то тут то там и почитав описания команд наваял примерно такое:
Sub proga()
Application.ScreenUpdating = False
For i = 2 To Cells.SpecialCells(xlCellTypeLastCell).Row
Dim r1 As Range, r2 As Range, myMultiAreaRange As Range
Set r1 = Range(Cells(1, 1), Cells(1, 12))
Set r2 = Range(Cells(i, 1), Cells(i, 12))
Set myMultiAreaRange = Union(r1, r2)
myMultiAreaRange.Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
ActiveWorkbook.SaveAs Filename:= _
"C:\excel_files\stroka" & i & ".xls", FileFormat:=xlNormal
ActiveWorkbook.Close
Next
Application.ScreenUpdating = True
End Sub
|
|
|
Отправлено: 11:21, 14-03-2012 |
|
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Debugger, как-то так:
Option Explicit
Sub proga()
Dim i As Long
Dim objUsedRange As Range
Set objUsedRange = ThisWorkbook.ActiveSheet.UsedRange
For i = 2 To objUsedRange.Rows.Count
With Application.Workbooks.Add
Union(objUsedRange.Rows(1), objUsedRange.Rows(i)).Copy .ActiveSheet.Cells(1, 1)
.SaveAs "C:\excel_files\stroka" & CStr(i) & ".xls"
.Close
End With
Next
End Sub
|
|
Отправлено: 12:58, 14-03-2012 | #2 |
|
Ветеран Сообщения: 867
|
Профиль | Отправить PM | Цитировать Спасибо, работает. Да черт его знает, человек работает в УЖКХ, таблица это список затрат на каждый дом в городе. Каждый файл по отдельности потом куда-то рассылают. Я не в курсе специфики их работы (и слава богу).
|
|
Отправлено: 13:28, 14-03-2012 | #3 |
|
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Debugger, спасибо, ясно. Я себе примерно такое и представлял.
|
|
Отправлено: 15:46, 14-03-2012 | #4 |
|
|
Участник сейчас на форуме |
|
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
| Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
| Разное - Не снимается защита листа в Excel | doznet | Microsoft Office (Word, Excel, Outlook и т.д.) | 3 | 17-12-2010 23:37 | |
| FreeBSD - как в rtorrent качать только отдельные файлы с раздачи? | Kerberos_2.0 | Общий по FreeBSD | 1 | 28-11-2010 14:10 | |
| 2003/XP/2000 - Excel и mdb файлы | GhostKU | Microsoft Office (Word, Excel, Outlook и т.д.) | 0 | 26-08-2010 16:49 | |
| C/C++ - [решено] Помогите, плиз, вынести классы в отдельные файлы. | Oleg_SK | Программирование и базы данных | 4 | 05-06-2010 18:15 | |
| 2007 - Excel | Как снять защиту к некоторым функциям в книге при включенной "Защита листа"? | MaxRAF | Microsoft Office (Word, Excel, Outlook и т.д.) | 2 | 10-03-2010 03:59 | |
|