Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Как в Excel (VBA) выделить 10 строк? - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как в Excel (VBA) выделить 10 строк? (Формулы/Formulas)
Как в Excel (VBA) выделить 10 строк?
Craftsman1 Дата: Воскресенье, 25.01.2015, 21:36 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 40% ±

Excel 2013
Здравствуйте. Подскажите как Excel документ в котором 10000 строк разбить по 10 строк и сохранить каждые 10 строк в отдельный файл. Нашел такой код который все сохраняет, но только по одной строке:
[vba]
Код
Sub beereator()
Application.ScreenUpdating = False
For i = 1 To Cells.SpecialCells(xlCellTypeLastCell).Row
Rows(i).Select
Selection.Cut
Workbooks.Add
ActiveSheet.Paste
ActiveWorkbook.SaveAs Filename:= _
"C:\Users\Yura\Desktop\b" & i & ".csv", FileFormat:=xlNormal 'файлы имунуются b1, b2, b3 и кладутся в корневой каталог
ActiveWorkbook.Close
Next
Application.ScreenUpdating = False
End Sub
[/vba]

Подскажите пожалуйста как исправить чтобы сохранял не по одной строке, а например 10 или 20 строк в один файл.


Сообщение отредактировал Serge_007 - Воскресенье, 25.01.2015, 21:48
 
Ответить
СообщениеЗдравствуйте. Подскажите как Excel документ в котором 10000 строк разбить по 10 строк и сохранить каждые 10 строк в отдельный файл. Нашел такой код который все сохраняет, но только по одной строке:
[vba]
Код
Sub beereator()
Application.ScreenUpdating = False
For i = 1 To Cells.SpecialCells(xlCellTypeLastCell).Row
Rows(i).Select
Selection.Cut
Workbooks.Add
ActiveSheet.Paste
ActiveWorkbook.SaveAs Filename:= _
"C:\Users\Yura\Desktop\b" & i & ".csv", FileFormat:=xlNormal 'файлы имунуются b1, b2, b3 и кладутся в корневой каталог
ActiveWorkbook.Close
Next
Application.ScreenUpdating = False
End Sub
[/vba]

Подскажите пожалуйста как исправить чтобы сохранял не по одной строке, а например 10 или 20 строк в один файл.

Автор - Craftsman1
Дата добавления - 25.01.2015 в 21:36
Wasilich Дата: Воскресенье, 25.01.2015, 23:12 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
Попробуйте так
[vba]
Код
For i = 1 To Cells.SpecialCells(xlCellTypeLastCell).Row
     r = i + 9
     Range("A" & i & ":A" & r).EntireRow.Select
     i = i + 9
[/vba]
 
Ответить
СообщениеПопробуйте так
[vba]
Код
For i = 1 To Cells.SpecialCells(xlCellTypeLastCell).Row
     r = i + 9
     Range("A" & i & ":A" & r).EntireRow.Select
     i = i + 9
[/vba]

Автор - Wasilich
Дата добавления - 25.01.2015 в 23:12
krosav4ig Дата: Понедельник, 26.01.2015, 00:12 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
[vba]
Код
Sub beereator()
        Dim i&, n&, WBtemp As Workbook, WSH As Worksheet
         Set WSH = ActiveSheet: n = 10
         With Application: .ScreenUpdating = 0: .EnableEvents = 0: .DisplayAlerts = 0
         For i = WSH.Cells.SpecialCells(xlCellTypeLastCell).Row \ n To 0 Step -1
             Set WBtemp = Workbooks.Add
             WSH.Rows(i * n + 1).Resize(10).Cut WBtemp.Sheets(1).[A1]
             WBtemp.SaveAs Filename:="C:\Users\Yura\Desktop\b" & i + 1, FileFormat:=6
             WBtemp.Close
         Next
         .ScreenUpdating = 1: .EnableEvents = 1: .DisplayAlerts = 1: End With
         Set WBtemp = Nothing: Set WSH = Nothing
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Понедельник, 26.01.2015, 12:59
 
Ответить
Сообщение[vba]
Код
Sub beereator()
        Dim i&, n&, WBtemp As Workbook, WSH As Worksheet
         Set WSH = ActiveSheet: n = 10
         With Application: .ScreenUpdating = 0: .EnableEvents = 0: .DisplayAlerts = 0
         For i = WSH.Cells.SpecialCells(xlCellTypeLastCell).Row \ n To 0 Step -1
             Set WBtemp = Workbooks.Add
             WSH.Rows(i * n + 1).Resize(10).Cut WBtemp.Sheets(1).[A1]
             WBtemp.SaveAs Filename:="C:\Users\Yura\Desktop\b" & i + 1, FileFormat:=6
             WBtemp.Close
         Next
         .ScreenUpdating = 1: .EnableEvents = 1: .DisplayAlerts = 1: End With
         Set WBtemp = Nothing: Set WSH = Nothing
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 26.01.2015 в 00:12
Craftsman1 Дата: Понедельник, 26.01.2015, 11:14 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 40% ±

Excel 2013
Всем спасибо за ответ. Написал вот так.. работает:

[vba]
Код
Sub beereator()
Application.ScreenUpdating = False
For i = 1 To Cells.SpecialCells(xlCellTypeLastCell).Row Step 10
     Rows(i & ":" & i + 9).Select
     Selection.Cut
     Workbooks.Add
     ActiveSheet.Paste
     ActiveWorkbook.SaveAs Filename:= _
         "C:\Users\Desktop\list" & i & ".csv", FileFormat:=xlNormal 'файлы имунуются b1, b2, b3 и кладутся в корневой каталог
     ActiveWorkbook.Close
Next
Application.ScreenUpdating = False
End Sub
[/vba]

Сейчас каждый документы именуется как 1.csv, 11.csv, 21.csv, 31.csv и т.д. Можете еще подсказать как правильно написать чтобы убрать в конце 1 т.е чтобы было просто по порядку 1.csv, 2.csv, 3.csv, 4.csv
 
Ответить
СообщениеВсем спасибо за ответ. Написал вот так.. работает:

[vba]
Код
Sub beereator()
Application.ScreenUpdating = False
For i = 1 To Cells.SpecialCells(xlCellTypeLastCell).Row Step 10
     Rows(i & ":" & i + 9).Select
     Selection.Cut
     Workbooks.Add
     ActiveSheet.Paste
     ActiveWorkbook.SaveAs Filename:= _
         "C:\Users\Desktop\list" & i & ".csv", FileFormat:=xlNormal 'файлы имунуются b1, b2, b3 и кладутся в корневой каталог
     ActiveWorkbook.Close
Next
Application.ScreenUpdating = False
End Sub
[/vba]

Сейчас каждый документы именуется как 1.csv, 11.csv, 21.csv, 31.csv и т.д. Можете еще подсказать как правильно написать чтобы убрать в конце 1 т.е чтобы было просто по порядку 1.csv, 2.csv, 3.csv, 4.csv

Автор - Craftsman1
Дата добавления - 26.01.2015 в 11:14
krosav4ig Дата: Понедельник, 26.01.2015, 12:34 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
смотрите мой пост, там документы именуются правильно
или у себя замените [vba]
Код
"C:\Users\Desktop\list" & i & ".csv"
[/vba] на [vba]
Код
"C:\Users\Desktop\list" & i \ 10 & ".csv"
[/vba]
почему у вас
FileFormat:=xlNormal
если

Тут же черным по белому написано, что CSV это xlCSV или 6, а вы сохраняете книгу excel 97-2003 с расширением csv. При правильном указании формата расширение указывать не обязательно, т.е.
[vba]
Код
ActiveWorkbook.SaveAs Filename:= "C:\Users\Desktop\list" & i \ 10, FileFormat:=6
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Понедельник, 26.01.2015, 14:08
 
Ответить
Сообщениесмотрите мой пост, там документы именуются правильно
или у себя замените [vba]
Код
"C:\Users\Desktop\list" & i & ".csv"
[/vba] на [vba]
Код
"C:\Users\Desktop\list" & i \ 10 & ".csv"
[/vba]
почему у вас
FileFormat:=xlNormal
если

Тут же черным по белому написано, что CSV это xlCSV или 6, а вы сохраняете книгу excel 97-2003 с расширением csv. При правильном указании формата расширение указывать не обязательно, т.е.
[vba]
Код
ActiveWorkbook.SaveAs Filename:= "C:\Users\Desktop\list" & i \ 10, FileFormat:=6
[/vba]

Автор - krosav4ig
Дата добавления - 26.01.2015 в 12:34
Hugo Дата: Понедельник, 26.01.2015, 13:00 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3253
Репутация: 707 ±
Замечаний: 0% ±

2019
Craftsman1, на других форумах нет желания отписаться? То то смотрю знакомая тема...


excel@nxt.ru
webmoney: E265281470651 Z422237915069


Сообщение отредактировал Hugo - Понедельник, 26.01.2015, 13:03
 
Ответить
СообщениеCraftsman1, на других форумах нет желания отписаться? То то смотрю знакомая тема...

Автор - Hugo
Дата добавления - 26.01.2015 в 13:00
Craftsman1 Дата: Понедельник, 26.01.2015, 15:31 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 40% ±

Excel 2013
Тут же черным по белому написано, что CSV это xlCSV или 6, а вы сохраняете книгу excel 97-2003 с расширением csv. При правильном указании формата расширение указывать не обязательно, т.е.
ActiveWorkbook.SaveAs Filename:= "C:\Users\Desktop\list" & i \ 10, FileFormat:=6

krosav4ig, Спасибо за ответ. Разобрался.


Сообщение отредактировал Craftsman1 - Понедельник, 26.01.2015, 15:31
 
Ответить
Сообщение
Тут же черным по белому написано, что CSV это xlCSV или 6, а вы сохраняете книгу excel 97-2003 с расширением csv. При правильном указании формата расширение указывать не обязательно, т.е.
ActiveWorkbook.SaveAs Filename:= "C:\Users\Desktop\list" & i \ 10, FileFormat:=6

krosav4ig, Спасибо за ответ. Разобрался.

Автор - Craftsman1
Дата добавления - 26.01.2015 в 15:31
Craftsman1 Дата: Понедельник, 26.01.2015, 15:34 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 40% ±

Excel 2013
Hugo, Я там тоже отписался. Везде кстати написали по разному. :)
 
Ответить
СообщениеHugo, Я там тоже отписался. Везде кстати написали по разному. :)

Автор - Craftsman1
Дата добавления - 26.01.2015 в 15:34
Hugo Дата: Понедельник, 26.01.2015, 16:01 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3253
Репутация: 707 ±
Замечаний: 0% ±

2019
Там где ответил я - там не отписались. Где я step 10 подсказал.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеТам где ответил я - там не отписались. Где я step 10 подсказал.

Автор - Hugo
Дата добавления - 26.01.2015 в 16:01
RAN Дата: Понедельник, 26.01.2015, 16:10 | Сообщение № 10
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
При правильном указании формата расширение указывать не обязательно

Но, только если в имени книги нет пробелов. Иначе сохранится в правильном формате, но без расширения. ;)


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
При правильном указании формата расширение указывать не обязательно

Но, только если в имени книги нет пробелов. Иначе сохранится в правильном формате, но без расширения. ;)

Автор - RAN
Дата добавления - 26.01.2015 в 16:10
krosav4ig Дата: Понедельник, 26.01.2015, 16:54 | Сообщение № 11
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
без расширения

ниче незнаю, пишу в immediate[vba]
Код
ActiveWorkbook.SaveAs Filename:= environ("homepath")&"\1 2", FileFormat:=6
[/vba], получаю файл "1 2.csv" в корневой папке пользователя :p
[p.s.]Excel - 2007 12.0.4518.1014
ОС - Microsoft Windows Professional SP3 Vol 2600.xpsp_sp3_qfe.130704-0421[/p.s.]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение
без расширения

ниче незнаю, пишу в immediate[vba]
Код
ActiveWorkbook.SaveAs Filename:= environ("homepath")&"\1 2", FileFormat:=6
[/vba], получаю файл "1 2.csv" в корневой папке пользователя :p
[p.s.]Excel - 2007 12.0.4518.1014
ОС - Microsoft Windows Professional SP3 Vol 2600.xpsp_sp3_qfe.130704-0421[/p.s.]

Автор - krosav4ig
Дата добавления - 26.01.2015 в 16:54
RAN Дата: Понедельник, 26.01.2015, 17:07 | Сообщение № 12
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
У меня было именно в 2007. Правда xls. Долго гадал, в чем дело. :)


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеУ меня было именно в 2007. Правда xls. Долго гадал, в чем дело. :)

Автор - RAN
Дата добавления - 26.01.2015 в 17:07
krosav4ig Дата: Понедельник, 26.01.2015, 17:12 | Сообщение № 13
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
RAN, написал [vba]
Код
ActiveWorkbook.SaveAs Filename:= environ("homepath")&"\1 2", FileFormat:=xlWorkbookNormal
[/vba], получил файл "1 2.xls", может быть у вас другая сборка была


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеRAN, написал [vba]
Код
ActiveWorkbook.SaveAs Filename:= environ("homepath")&"\1 2", FileFormat:=xlWorkbookNormal
[/vba], получил файл "1 2.xls", может быть у вас другая сборка была

Автор - krosav4ig
Дата добавления - 26.01.2015 в 17:12
krosav4ig Дата: Понедельник, 26.01.2015, 17:40 | Сообщение № 14
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Я там тоже отписался

чего-то не заметно, да и ни тут, ни тут, ссылок на эту тему замечено не было, ни тут не были опубликованы эти ссылки.


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Понедельник, 26.01.2015, 17:43
 
Ответить
Сообщение
Я там тоже отписался

чего-то не заметно, да и ни тут, ни тут, ссылок на эту тему замечено не было, ни тут не были опубликованы эти ссылки.

Автор - krosav4ig
Дата добавления - 26.01.2015 в 17:40
Hugo Дата: Понедельник, 26.01.2015, 17:49 | Сообщение № 15
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3253
Репутация: 707 ±
Замечаний: 0% ±

2019
Ну возможно отписано в 10-ти других форумах :) Правда каких? Ну парочку ещё можно упомянуть... а где ещё?


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеНу возможно отписано в 10-ти других форумах :) Правда каких? Ну парочку ещё можно упомянуть... а где ещё?

Автор - Hugo
Дата добавления - 26.01.2015 в 17:49
Craftsman1 Дата: Среда, 28.01.2015, 14:26 | Сообщение № 16
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 40% ±

Excel 2013
krosav4ig, Можешь подсказать насчет формата. Если ставлю так
[vba]
Код

Sub beereator()
Application.ScreenUpdating = False
For i = 1 To Cells.SpecialCells(xlCellTypeLastCell).Row Step 200
      Rows(i & ":" & i + 200).Select
      Selection.Cut
      Workbooks.Add
      ActiveSheet.Paste
      ActiveWorkbook.SaveAs Filename:= "C:\Users\list" & i \ 200 & ".csv", FileFormat:=6 'файлы имунуются b1, b2, b3 и кладутся в корневой каталог
      ActiveWorkbook.Close
Next
Application.ScreenUpdating = False
End Sub
[/vba]
то постоянно вылазит окно "Вы хотите сохранить изменения в файле.. ". Как сделать чтобы это окно не вылазило?


Сообщение отредактировал Craftsman1 - Среда, 28.01.2015, 14:27
 
Ответить
Сообщениеkrosav4ig, Можешь подсказать насчет формата. Если ставлю так
[vba]
Код

Sub beereator()
Application.ScreenUpdating = False
For i = 1 To Cells.SpecialCells(xlCellTypeLastCell).Row Step 200
      Rows(i & ":" & i + 200).Select
      Selection.Cut
      Workbooks.Add
      ActiveSheet.Paste
      ActiveWorkbook.SaveAs Filename:= "C:\Users\list" & i \ 200 & ".csv", FileFormat:=6 'файлы имунуются b1, b2, b3 и кладутся в корневой каталог
      ActiveWorkbook.Close
Next
Application.ScreenUpdating = False
End Sub
[/vba]
то постоянно вылазит окно "Вы хотите сохранить изменения в файле.. ". Как сделать чтобы это окно не вылазило?

Автор - Craftsman1
Дата добавления - 28.01.2015 в 14:26
krosav4ig Дата: Среда, 28.01.2015, 14:47 | Сообщение № 17
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
вместо [vba]
Код
Application.ScreenUpdating = False
[/vba] (в начале кода)

[vba]
Код
With Application: .ScreenUpdating = 0: .EnableEvents = 0: .DisplayAlerts = 0
[/vba]

вместо [vba]
Код
Application.ScreenUpdating = False
[/vba] (в конце кода. кстати, почему False? вы уже отключили обновление экрана в начале кода, тут нужно его включить (True). Вас спасает только то, что при завершении работы макроса обновление экрана автоматически включается)

[vba]
Код
.ScreenUpdating = 1: .EnableEvents = 1: .DisplayAlerts = 1: End With
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Среда, 28.01.2015, 15:21
 
Ответить
Сообщениевместо [vba]
Код
Application.ScreenUpdating = False
[/vba] (в начале кода)

[vba]
Код
With Application: .ScreenUpdating = 0: .EnableEvents = 0: .DisplayAlerts = 0
[/vba]

вместо [vba]
Код
Application.ScreenUpdating = False
[/vba] (в конце кода. кстати, почему False? вы уже отключили обновление экрана в начале кода, тут нужно его включить (True). Вас спасает только то, что при завершении работы макроса обновление экрана автоматически включается)

[vba]
Код
.ScreenUpdating = 1: .EnableEvents = 1: .DisplayAlerts = 1: End With
[/vba]

Автор - krosav4ig
Дата добавления - 28.01.2015 в 14:47
Craftsman1 Дата: Среда, 28.01.2015, 17:30 | Сообщение № 18
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 40% ±

Excel 2013
krosav4ig, Спасибо за помощь.
 
Ответить
Сообщениеkrosav4ig, Спасибо за помощь.

Автор - Craftsman1
Дата добавления - 28.01.2015 в 17:30
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как в Excel (VBA) выделить 10 строк? (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!