Розбиття текстового файлу (в т

Функція призначена для розбивки текстового файлу на кілька файлів меншого розміру - в кожному з яких буде не більше заданнного кількості рядків

Роздільник рядків (зазвичай це новий рядок - константа vbNewLine) задається як параметр функції Delimiter $

Створювані файли отримують імена виду filename (1) .txt. filename (2) .txt і т.д.

Якщо заданий параметр функції DeleteSourceFile рівним TRUE. - то вихідний файл видаляється після поділу

Функція повертає колекцію, яка містить шляху до сформованим файлів

На початок кожного створюваного файлу дописується рядок заголовка - перший рядок з вихідного файлу

Приклад використання функції SplitTextFile:

Код функції SplitTextFile:

Дмитро, даний макрос не розрахований на файли розміром 117мб
(Він для маленьких файлів - до 1-10 Мб)
Для величезних файлів (як ваш) - зовсім інші технології обробки треба застосовувати (Прогресивне читання),
щоб швидше все працювало, і пам'яті вистачало на обробку.
Не намагайтеся знайти таке у мене на сайті, - мої «універсальні» макроси не розраховані на файли такого обсягу

Спасибі за відповідь! Але не допомогло. У вікні відладчика бачу, що в txt з'явилися символи. замість тексту, а на рядку txt = Split (txt, Delimiter $, 2) (1) вилітає помилка subscript out of range. Наскільки я зрозумів - не бачить роздільник і не може розбити рядок на підрядка.


додайте ще один параметр True:

у вас файл в іншому кодуванні (unicode) - додатковий параметр TRUE якраз для цього призначений

Вітаю! Ваш код використовую для обробки файлів. Але при обробці чергового файлу в рядку Set ts = fso.OpenTextFile (filename, 1, True): txt = ts.ReadAll: ts.Close НЕ Новомосковскется вихідний файл. У txt передається "". Вихідний файл csv. Подібних файлів (і за структурою і типом даних) оброблено з десяток, було все відмінно, а тут проблема. Не можу зрозуміти в чому причина. Може підкажете? Єдина відмінність цей нещасливий файл більше інших - 117мб

Дякую спробую. Вибачте, що питання не по темі - не розібрався по порядку спілкування. Я тут вперше.

Марат, а яке відношення ваше запитання має до теми статті?
Задайте питання на форумі по Excel, - там підкажуть.
Я б використовував GetObject для отримання доступу до файлу, якщо відомий шлях, по якому файл збережений.

Привіт Ігор, проблема така - відкриті два екселевскій файлу, але обидва в своїх батьківських вікнах, необхідно з одного файлу перекинути інформацію в інший. Макрос, прикріплений до одного з файлів, не бачить книгу в іншому батьківському вікні. Як його все-таки побачити?

Галія, в даному випадку в коді дуже багато чого міняти треба.
Простіше написати макрос «з нуля».

Оформляйте замовлення на сайті (якщо готові оплатити допомогу),
або зверніться на форуми по Excel (якщо хочете, щоб вам допомогли безкоштовно)

Спасибі, дуже допомогли!
Підкажіть, будь ласка, ще трошки
Є екселевскій файл, в ньому декілька стовпців. Необхідно, наприклад, якщо значення в стовпці А більше 0, записувати в перший файл, якщо більше 5, у наступний, тобто кількість рядків у файлах ми самі не задаємо, а визначаємо з умови. Як це реалізувати? Як я розумію, потрібно поміняти в цьому місці
If rc> = MaxRowsCount.
На щось в цьому роді
If Cells (i, "A")> 0 "0" Then.
далі ось як з файлами працювати не знай