Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2014, 10:51   #1
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию Создать таблицу из ряда данных

Есть файл Word 2003 с 16-ти_ричными данными 8 608 873 символов на 2205 страниц и 2,7 мб, почему W2003, потому, что W2010 зависал наглухо, офис 2010 у меня лицензионный, все обновы ставил, ставил 64, 32 версию, урезанную, полную, пофигу, виснет.
http://yadi.sk/d/2JifUbFDRZiTF

Нужно создать таблицу по 16 символов в строке для дальнейшего анализа в Excel 2010, вставить в строку Excel могу только 32736 символов.
Макрос который это делает в Excel
Код:
Sub Split16()
iCol = 1
  Dim r As Long
  For r = Len(Cells(1, iCol)) / 16 - 1 To 0 Step -1
    Cells(r + 1, iCol) = Mid(Cells(1, iCol), r * 16 + 1, 16)
  Next
End Sub
Можно его переделать для ворда?
Спасибо.
valerij вне форума Ответить с цитированием
Старый 29.05.2014, 10:55   #2
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию

Нужно создать таблицу по 16 символов-шикарно
сколько строк, сколько столбцов?
магнитофоном пробовали?
Ципихович Эндрю вне форума Ответить с цитированием
Старый 29.05.2014, 11:10   #3
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от Ципихович Эндрю Посмотреть сообщение
магнитофоном пробовали?
Вы не издевайтесь, можно или нельзя.
Столбец один...

Или какой выход?
В екселе всё получается, но очень долго, разбиваю в Notepad++ по 32736 символа и вставляю в ексель, но это надо ~ 262 файла Notepad и не так просто, ошибка и всё насмарку.

А-а дошло это строк будет 538055 -
Код:
Sub Split16()
For x = 1 To 538055
    Selection.MoveRight Unit:=wdCharacter, Count:=16
    Selection.TypeParagraph
    Next
End Sub

Последний раз редактировалось valerij; 29.05.2014 в 11:33.
valerij вне форума Ответить с цитированием
Старый 29.05.2014, 13:11   #4
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,077
По умолчанию

ПО 512 СИМВОЛОВ В СТРОКУ ПОЛУЧИЛАСЬ 16810 СТРОК
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Старый 29.05.2014, 13:15   #5
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,077
По умолчанию

ссылка http://yadi.sk/d/acc4QYZwRadVM
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Старый 29.05.2014, 14:24   #6
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от shanemac51 Посмотреть сообщение
ПО 512 СИМВОЛОВ В СТРОКУ ПОЛУЧИЛАСЬ 16810 СТРОК
Понял.
Спасибо.
valerij вне форума Ответить с цитированием
Старый 29.05.2014, 15:26   #7
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,077
По умолчанию

ексель в ссылке
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Старый 29.05.2014, 16:00   #8
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от shanemac51 Посмотреть сообщение
ексель в ссылке
Да, увидел.
Переделал под него макрос
Код:
Sub Split16()
Application.EnableEvents = False
Application.ScreenUpdating = False
iCol = 1: iRow = 1: iDov = 0
  Dim r As Long
1:  For r = Len(Cells(iRow, iCol)) / 16 - 1 To 0 Step -1
        Лист2.Cells(r + 1 + iDov, iCol) = Mid(Cells(iRow, iCol), r * 16 + 1, 16)
    Next
        iRow = iRow + 1: iDov = iDov + 32
            If iRow > 16814 Then
                Else
                GoTo 1
            End If
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
строк 16814
(в конце незначащие нули удалил.)
http://yadi.sk/d/cotyZcqfRbbT2

Нашёл ошибку в коде - красным, теперь сходится 8 608 768 ...

Последний раз редактировалось valerij; 29.05.2014 в 16:41.
valerij вне форума Ответить с цитированием
Старый 30.05.2014, 00:39   #9
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от shanemac51 Посмотреть сообщение
ексель в ссылке
shanemac51!!
Подскажите, как мне в екселе сделать не 512, а 384 символа - кратно числам 16 и 24.
Или как вы вставили из ворда в ексель по 512 в строке.
valerij вне форума Ответить с цитированием
Старый 30.05.2014, 01:10   #10
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,077
По умолчанию

макросик написала
512 можно легко изменить не 16*24, но может не поити импорт в ексель(строк будет около 25000)
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как создать таблицу в существующей базе данных с именем переменной Sprat PHP 6 20.03.2012 16:48
создать таблицу с подстановкой данных с листов того же файла Jlia Microsoft Office Excel 1 02.08.2010 21:39
необходимо вывести на экран таблицу значений суммы ряда S(x) для х изменяющихся от xn до xk Mereke Помощь студентам 2 21.05.2010 17:28
сортировка данных (пересчет возможных вариантов комбинаций, перенос данных в таблицу) Vitalik85 Microsoft Office Excel 4 12.08.2009 00:30
Создать итоговую таблицу VictorM Microsoft Office Excel 2 23.03.2009 22:48