Форум программистов, компьютерный форум, киберфорум
MS Office Excel
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.62/155: Рейтинг темы: голосов - 155, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 13.04.2014
Сообщений: 15

Разделение файла на несколько частей(макрос)

29.04.2014, 13:19. Показов 32762. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят кто-нить помогите. Я уже отчаялся не знаю как сделать это "Разделить файл на несколько частей с помощью макроса в Excel". Может остались люди добрые, буду признателен.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.04.2014, 13:19
Ответы с готовыми решениями:

Разделение текстового файла на переменное количество частей и перемещение этих частей
С Вашей помощью у меня получается создать папки с плейлистами @echo off setlocal enabledelayedexpansion >nul chcp 1251 set...

Разделение слова на несколько частей
Здравствуйте! Возможно, для знатоков VBA данный вопрос будет выглядеть довольно просто и забавно, но для малоопытного пользователя VBA -...

Разделение проекта на несколько частей
Здравствуйте, вот попал в такую ситуацию, есть Solution, там несколько проектов, среди которых Services и Web -- Services - предоставляет...

21
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
29.04.2014, 13:46
1. Какой файл - двоичный, текстовый, книга Excel, документ Word, ...?
2. Как соответственно делить - на куски заданного размера, на куски заданного размера, но не разрывая слов, по листам, по страницам, ...?
0
0 / 0 / 0
Регистрация: 13.04.2014
Сообщений: 15
29.04.2014, 17:11  [ТС]
Файл Excel, делить на куски заданного размера.

Добавлено через 1 час 38 минут
Значит уже никто не поможет =\

Добавлено через 1 час 39 минут
Если сможешь помочь помоги будь добр =\
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
29.04.2014, 19:00
Лучший ответ Сообщение было отмечено Scorpion86rus как решение

Решение

Пробуйте
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Sub Scorpion86rus()
Dim bytesLeft&, partSize&, b() As Byte, x, f%, g%, cnt&
x = Application.GetOpenFilename("All files,*.*")
If x = "False" Then Exit Sub
partSize = InputBox("Введите размер части (байт)", , 5000)
f = FreeFile
Open x For Binary Access Read As f
bytesLeft = LOF(f)
ReDim b(1 To partSize)
Do
  If UBound(b) > bytesLeft Then ReDim b(1 To bytesLeft)
  bytesLeft = bytesLeft - UBound(b)
  Get f, , b
  g = FreeFile
  cnt = cnt + 1
  Open x & Format(cnt, "_000\.bin") For Binary Access Write As g
  Put g, , b
  Close g
Loop While bytesLeft
Close f
MsgBox "Записано " & cnt & " файлов", vbInformation
End Sub
Добавлено через 8 минут
Объединить части обратно можно консольной командой
Bash
1
copy /b file1+file2+file3 newfile
1
0 / 0 / 0
Регистрация: 13.04.2014
Сообщений: 15
29.04.2014, 19:19  [ТС]
Теперь бы понять, что где, куда, зачем и как =\
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
29.04.2014, 19:27
F1 - Создание макроса
0
0 / 0 / 0
Регистрация: 13.04.2014
Сообщений: 15
29.04.2014, 19:33  [ТС]
Ну вот например у меня файл есть. С макросами я не очень вообще.
Вложения
Тип файла: xlsx Задание.xlsx (9.6 Кб, 96 просмотров)
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
29.04.2014, 23:37
Лучший ответ Сообщение было отмечено Scorpion86rus как решение

Решение

Чувствую я, что совсем не это Вам нужно. Ну вот макрос в файле.
Вложения
Тип файла: xls ДелительФайлов.xls (29.0 Кб, 480 просмотров)
2
0 / 0 / 0
Регистрация: 13.04.2014
Сообщений: 15
30.04.2014, 05:35  [ТС]
Огромное спасибо. Прям жизнь спас. Еще остались все же добрые люди.
0
0 / 0 / 0
Регистрация: 13.04.2014
Сообщений: 15
02.05.2014, 12:59  [ТС]
Извини, что отвлекаю или мешаю, но сможешь комментарии по коду написать, а то проблемка.
И возможно как-нить сделать, чтобы при делении файла, разделенные сохранялись в отдельную папку, а не в том месте где файл деления.
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
02.05.2014, 22:47
Scorpion86rus, получайте.
Я комментировал не все, а в основном то, что является сутью алгоритма. Остальное найдете в Справке, учебниках и в Сети.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Sub Scorpion86rus()
Dim bytesLeft&, partSize&, b() As Byte, fileName, f%, g%, cnt&, baseName$
fileName = Application.GetOpenFilename("All files,*.*", , "Выберите файл для деления")
If fileName = False Then Exit Sub
  'из полного пути выделяем имя файла с "\"
baseName = Right$(fileName, Len(fileName) - InStrRev(fileName, "\") + 1)
With Application.FileDialog(msoFileDialogFolderPicker)
  .Title = "Выберите папку для сохранения"
  .Show
  If .SelectedItems.Count = 0 Then Exit Sub
    'формируем основу пути файла для сохранения из выбранной папки и имени файла для деления
  baseName = .SelectedItems(1) & baseName
End With
partSize = InputBox("Введите размер части (байт)", , 5000)
f = FreeFile
Open fileName For Binary Access Read As f
bytesLeft = LOF(f)     'размер файла в байта, столько байт осталось записать
ReDim b(1 To partSize) 'буфер длиной с размер части
Do
    'если длина буфера больше, чем осталось записать байт,
    'делаем буфер длиной сколько байт осталось, это будет последний файл
  If UBound(b) > bytesLeft Then ReDim b(1 To bytesLeft)
    'уменьшаем число оставшихся байт на размер буфера
  bytesLeft = bytesLeft - UBound(b)
    'считываем очередной кусок файла в буфер
  Get f, , b
  g = FreeFile
    'увеличиваем счетчик файлов на 1
  cnt = cnt + 1
    'записываем очередной файл
  Open baseName & Format(cnt, "_000\.bin") For Binary Access Write As g
  Put g, , b
  Close g
    'продолжаем цикл, пока осталось записать байт >0
Loop While bytesLeft
Close f
MsgBox "Записано " & cnt & " файлов", vbInformation
End Sub
Вложения
Тип файла: xls делительФайлов1.xls (36.5 Кб, 170 просмотров)
1
0 / 0 / 0
Регистрация: 13.04.2014
Сообщений: 15
02.05.2014, 23:17  [ТС]
Спасибо еще раз и извини за беспокойство, и доставления не удобств.
0
0 / 0 / 0
Регистрация: 20.11.2018
Сообщений: 6
02.12.2018, 13:46
Казанский, добрый день! Сможете ли Вы на платной основе написать макро такого плана - деление файла на 500 строк и сохранение каждого в таблицу хмл 2003?
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12208 / 5051 / 812
Регистрация: 07.08.2010
Сообщений: 14,907
Записей в блоге: 4
02.12.2018, 14:16
Цитата Сообщение от katya1183 Посмотреть сообщение
деление файла на 500 строк и сохранение каждого в таблицу хмл 2003?
не смогла понять
--или каждую из 500 строк в отдельный XML
--или каждые 500 строк в отдельный XML
--чем XML-2003 отличается от XML-2016
--или вы ошиблись и речь идет о XLS и EXCEL-2003
0
0 / 0 / 0
Регистрация: 20.11.2018
Сообщений: 6
04.12.2018, 20:03
Добрый день! я дуб дубом в екселях и прочих.... Поэтому опишу, что я делаю и что мне нужно. У меня есть поставщики, которые предоставляют файл наличия товаров для выгрузки в интернет магазин. Этот файл очень большой 20 тыс товаров. Чтобы обновить все товары на сайте я должна этот файл разделить на 500, т.к в магазин больше не загрузишь, программа сразу вылетает. Грубо говоря в файле 20 тысяч комплекто востельного белья а мне надо по 500. и так прогружать каждый файл. Файл я скачиваю в таком формате. - XML. ЗАТЕМ В НОТЕПАД ++ МЕНЯЮ И ОТКРЫВАЮ УЖЕ ПРИ ПОМОЩИ ЕКСЕЛЬ. ЗАТЕ ДЕРБАНЮ НА ФАЙЛЫ ПО 500 ТОВАРОВ В КАЖДОМ И СОХРАНЯЮ (СОХРАНИТЬ КАК) ТАБЛИЦА XML 2003/иМЕННО ЭТОТ ФОРМАТ МОЖНО ЗАГРУЗИТЬ НА САЙТ
Можно ли написать макрос такого плана. или из ряда фантастики?
0
0 / 0 / 0
Регистрация: 20.11.2018
Сообщений: 6
08.12.2018, 15:10
Добрый деньshanemac51, Добрый день! я дуб дубом в екселях и прочих.... Поэтому опишу, что я делаю и что мне нужно. У меня есть поставщики, которые предоставляют файл наличия товаров для выгрузки в интернет магазин. Этот файл очень большой 20 тыс товаров. Чтобы обновить все товары на сайте я должна этот файл разделить на 500, т.к в магазин больше не загрузишь, программа сразу вылетает. Грубо говоря в файле 20 тысяч комплекто востельного белья а мне надо по 500. и так прогружать каждый файл. Файл я скачиваю в таком формате. - XML. ЗАТЕМ В НОТЕПАД ++ МЕНЯЮ И ОТКРЫВАЮ УЖЕ ПРИ ПОМОЩИ ЕКСЕЛЬ. ЗАТЕ ДЕРБАНЮ НА ФАЙЛЫ ПО 500 ТОВАРОВ В КАЖДОМ И СОХРАНЯЮ (СОХРАНИТЬ КАК) ТАБЛИЦА XML 2003/иМЕННО ЭТОТ ФОРМАТ МОЖНО ЗАГРУЗИТЬ НА САЙТ
Можно ли написать макрос такого плана. или из ряда фантастики?
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12208 / 5051 / 812
Регистрация: 07.08.2010
Сообщений: 14,907
Записей в блоге: 4
08.12.2018, 21:34
Цитата Сообщение от katya1183 Посмотреть сообщение
ЗАТЕМ В НОТЕПАД ++ МЕНЯЮ
а в нем то что делаете
0
0 / 0 / 0
Регистрация: 20.11.2018
Сообщений: 6
09.12.2018, 15:10
кодировки и сохраняю в utf8. ВСе! Открываю этот файл в ексель и делю на части. затем сохраняю хмл 2003
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12208 / 5051 / 812
Регистрация: 07.08.2010
Сообщений: 14,907
Записей в блоге: 4
09.12.2018, 16:59
Цитата Сообщение от katya1183 Посмотреть сообщение
Файл я скачиваю в таком формате. - XML.
хотелось бы его увидеть --предполагаю, что это длиннющая строка без нормальной разбивки на подстроки(по документам)

пару дней назад видела файл в одну строку в 840мб
причем без явных тегов разбиения по фио и разным составом тегов по фио
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12208 / 5051 / 812
Регистрация: 07.08.2010
Сообщений: 14,907
Записей в блоге: 4
23.01.2019, 09:40
Цитата Сообщение от katya1183 Посмотреть сообщение
У меня есть поставщики, которые предоставляют файл наличия товаров для выгрузки в интернет магазин. Этот файл очень большой 20 тыс товаров.
выложите пример файла
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.01.2019, 09:40
Помогаю со студенческими работами здесь

Разбиение файла *.jpg на несколько частей
У меня есть изображение *.jpg. Как его можно разбить на несколько частей с помощью Delphi? Я понимаю, что его можно разбить на части в...

Программа для разделения .txt файла на несколько частей
Доброго времени суток! Вот вчера скачал словарь с комбинациями(956 mb) и вот теперь незнаю как открыть( комп не тянет такой большой...

Макрос: убрать разделение текста на абзацы (все содержимое файла слить в один абзац)
Нужно Написать макрос, который переписывает произвольный текст Word в другой документ “Result.docx”, переделывая его согласно условию...

Разделение pi на восемь частей
Хочу чтобы оно считало угол в радианах...ну то есть pi/8;2pi/8 и т д.не понимаю почему столько мусора выдает. #include <stdio.h> ...

Разделение картинки на определенное количество частей
Всем привет!) Облазил весь интернет, не нашел ничего вразумительного, поэтому хочу спросить у вас) Помогите, если кто знает как) Есть, к...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru