powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Подскажите как правильно создать макрос
9 сообщений из 9, страница 1 из 1
Подскажите как правильно создать макрос
    #37689909
ruslan99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте! Помогите решить такую задачу:

Необходимо написать макрос, который производит чтение текстового файла и записывает выборочные строки в MS Word. Номера строк остаются всегда постоянными.
Код: plaintext
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.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
|===================================================================================================|
| ЌЂ 02.03.2012ѓ.           |  1  |  2  |  3  |  4  |  5  |  6  |  7  |  8  |  9  | 10  |  11 | 12  |
|===================================================================================================|
|                      |  1 |    -|    -|  0.0|    -|    -|  0.0|  120|  103| 85.8|    3|    -|  0.0|
|                      |  2 |  359|  353| 98.3|  273|  264| 96.7|  236|  233| 98.7|    1|    2|200.0|
|                      |  3 |  111|  127|114.4|  100|  101|101.0|   78|   87|111.5|    5|    -|  0.0|
|                      |  4 |  418|  466|111.5|  251|  271|108.0|  214|  226|105.6|    4|    -|  0.0|
|                      |  5 |  419|  411| 98.1|  321|  282| 87.9|  273|  276|101.1|    -|    6|  0.0|
|                      |  6 | 1307| 1357|103.8|  945|  918| 97.1|  921|  925|100.4|   13|    8| 61.5|
| --------------------------------------------------------------------------------------------------|
|                      |  7 |  191|  223|116.8|  149|  154|103.4|  158|  148| 93.7|    3|    1| 33.3|
|                      |  8 |  202|  236|116.8|  197|  209|106.1|  170|  187|110.0|    1|    -|  0.0|
|                      |  9 |  144|  134| 93.1|   96|  104|108.3|   92|   95|103.3|    3|    1| 33.3|
|                      | 10 |  123|  123|100.0|  122|  122|100.0|  108|  110|101.9|    2|    -|  0.0|
|                      | 11 |  279|  258| 92.5|  182|  206|113.2|  142|  175|123.2|    9|    2| 22.2|
|                      | 12 |  197|  219|111.2|  247|  229| 92.7|  215|  218|101.4|    1|    2|200.0|
|                      | 13 |  391|  420|107.4|  308|  364|118.2|  290|  339|116.9|    1|   14|140.0|
|                      | 14 |  123|  121| 98.4|   73|   87|119.2|   63|   67|106.3|    1|    2|200.0|
|                      | 15 |  168|  178|106.0|  144|  149|103.5|  122|  121| 99.2|    1|    -|  0.0|
|                      | 16 |  125|  147|117.6|  113|  122|108.0|  103|  112|108.7|    1|    -|  0.0|
|                      | 17 |  220|  226|102.7|  221|  205| 92.8|  217|  192| 88.5|   10|    4| 40.0|
|                      | 18 |  275|  281|102.2|  248|  263|106.0|  243|  259|106.6|    1|    1|100.0|
|                      | 19 |  347|  357|102.9|  262|  263|100.4|  276|  260| 94.2|    4|    1| 25.0|
|===================================================================================================|

|=======================================================|
| ЌЂ 02.03.2012ѓ.           |   1  |   2  |   3  |   4  |
|=======================================================|
|                      |  1 |     -|     -|     -|     -|
|                      |  2 |     7|    23|    11|     -|
|                      |  3 |     5|    10|    10|     -|
|                      |  4 |     8|    25|    13|     -|
|                      |  5 |    19|    36|    34|     3|
|                      |  6 |    39|    94|    68|     3|
| ------------------------------------------------------|
|                      |  7 |     7|     2|     -|     -|
|                      |  8 |    12|     9|    10|     -|
|                      |  9 |    10|     5|     8|     -|
|                      | 10 |     3|     2|     7|     -|
|                      | 11 |    10|    11|     3|     -|
|                      | 12 |    10|     4|     2|     -|
|                      | 13 |    24|    24|     4|     -|
|                      | 14 |     5|     9|     8|     -|
|                      | 15 |    13|     6|     4|     -|
|                      | 16 |    10|    11|     5|     -|
|                      | 17 |     8|    32|    33|     3|
|                      | 18 |     3|     1|     1|     -|
|                      | 19 |    24|    14|    31|     -|
|-------------------------------------------------------|
| итого                | 43 |   254|   292|   292|    17|
|=======================================================|

|===================================================================================================|
| ЌЂ 02.03.2012ѓ.           |  1  |  2  |  3  |  4  |  5  |  6  |  7  |  8  |  9  | 10  |  11 | 12  |
|===================================================================================================|
|                      |  1 |    -|    -|  0.0|    -|    -|  0.0|   56|   51| 91.1|    1|    -|  0.0|
|                      |  2 |  184|  170| 92.4|  136|  127| 93.4|  114|  108| 94.7|    -|    1|  0.0|
|                      |  3 |   49|   54|110.2|   52|   50| 96.2|   37|   41|110.8|    1|    -|  0.0|
|                      |  4 |  180|  196|108.9|  111|  135|121.6|   99|  106|107.1|    4|    -|  0.0|
|                      |  5 |  205|  167| 81.5|  169|  148| 87.6|  124|  124|100.0|    -|    3|  0.0|
|                      |  6 |  618|  587| 95.0|  468|  460| 98.3|  430|  430|100.0|    6|    4| 66.7|
| --------------------------------------------------------------------------------------------------|
|                      |  7 |  103|  101| 98.1|   74|   73| 98.6|   90|   67| 74.4|    1|    -|  0.0|
|                      |  8 |   96|  107|111.5|   97|  101|104.1|   93|   93|100.0|    1|    -|  0.0|
|                      |  9 |   76|   64| 84.2|   47|   48|102.1|   35|   38|108.6|    2|    1| 50.0|
|                      | 10 |   58|   54| 93.1|   60|   58| 96.7|   51|   52|102.0|    1|    -|  0.0|
|                      | 11 |  147|   88| 59.9|   96|  100|104.2|   69|   85|123.2|    5|    1| 20.0|
|                      | 12 |   81|   99|122.2|  114|  107| 93.9|   95|   91| 95.8|    1|    -|  0.0|
|                      | 13 |  188|  194|103.2|  149|  171|114.8|  128|  138|107.8|    -|   14|  0.0|
|                      | 14 |   65|   59| 90.8|   39|   44|112.8|   26|   31|119.2|    1|    1|100.0|
|                      | 15 |   84|   85|101.2|   71|   69| 97.2|   46|   48|104.3|    -|    -|  0.0|
|                      | 16 |   58|   60|103.4|   46|   43| 93.5|   51|   44| 86.3|    1|    -|  0.0|
|                      | 17 |  114|  101| 88.6|  120|   86| 71.7|  113|   83| 73.5|    5|    3| 60.0|
|                      | 18 |  122|  103| 84.4|  101|  105|104.0|  101|  106|105.0|    1|    1|100.0|
|                      | 19 |  147|  174|118.4|  114|  115|100.9|  131|  115| 87.8|    -|    1|  0.0|
|---------------------------------------------------------------------------------------------------|

Из первой таблицы надо первые 10 строк (до черты)
Из второй таблицы первые 10 строк и последнюю строку (итого)
Из третей таблицы тоже первые 10 строк
Получится должно так:
Код: plaintext
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.
|===================================================================================================|
| ЌЂ 02.03.2012ѓ.           |  1  |  2  |  3  |  4  |  5  |  6  |  7  |  8  |  9  | 10  |  11 | 12  |
|===================================================================================================|
|                      |  1 |    -|    -|  0.0|    -|    -|  0.0|  120|  103| 85.8|    3|    -|  0.0|
|                      |  2 |  359|  353| 98.3|  273|  264| 96.7|  236|  233| 98.7|    1|    2|200.0|
|                      |  3 |  111|  127|114.4|  100|  101|101.0|   78|   87|111.5|    5|    -|  0.0|
|                      |  4 |  418|  466|111.5|  251|  271|108.0|  214|  226|105.6|    4|    -|  0.0|
|                      |  5 |  419|  411| 98.1|  321|  282| 87.9|  273|  276|101.1|    -|    6|  0.0|
|                      |  6 | 1307| 1357|103.8|  945|  918| 97.1|  921|  925|100.4|   13|    8| 61.5|
| --------------------------------------------------------------------------------------------------|

|=======================================================|
| ЌЂ 02.03.2012ѓ.           |   1  |   2  |   3  |   4  |
|=======================================================|
|                      |  1 |     -|     -|     -|     -|
|                      |  2 |     7|    23|    11|     -|
|                      |  3 |     5|    10|    10|     -|
|                      |  4 |     8|    25|    13|     -|
|                      |  5 |    19|    36|    34|     3|
|                      |  6 |    39|    94|    68|     3|
|-------------------------------------------------------|
| €’ЋѓЋ ЏЋ ЋЃ‹Ђ‘’€     | 43 |   254|   292|   292|    17|
|=======================================================|

|===================================================================================================|
| ЌЂ 02.03.2012ѓ.           |  1  |  2  |  3  |  4  |  5  |  6  |  7  |  8  |  9  | 10  |  11 | 12  |
|===================================================================================================|
|                      |  1 |    -|    -|  0.0|    -|    -|  0.0|   56|   51| 91.1|    1|    -|  0.0|
|                      |  2 |  184|  170| 92.4|  136|  127| 93.4|  114|  108| 94.7|    -|    1|  0.0|
|                      |  3 |   49|   54|110.2|   52|   50| 96.2|   37|   41|110.8|    1|    -|  0.0|
|                      |  4 |  180|  196|108.9|  111|  135|121.6|   99|  106|107.1|    4|    -|  0.0|
|                      |  5 |  205|  167| 81.5|  169|  148| 87.6|  124|  124|100.0|    -|    3|  0.0|
|                      |  6 |  618|  587| 95.0|  468|  460| 98.3|  430|  430|100.0|    6|    4| 66.7|
| --------------------------------------------------------------------------------------------------|


Подскажите пожалуйста как лучше сделать такой макрос. Желательно с примерами кода.
...
Рейтинг: 0 / 0
Подскажите как правильно создать макрос
    #37690374
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть в ворде должна воспроизвестись вся это псевдографика? Или нужно все же создавать нормальные вордовые таблицы?
И что собственно, не получается?
...
Рейтинг: 0 / 0
Подскажите как правильно создать макрос
    #37690580
ruslan99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, просто нужно перенести данные как есть с текстового файла в документ Word, но проблема заключается в том, что нужны не все строки, а только выборочные (с каждой таблицы по 10-ть первых строк и во второй таблице еще последнюю строку "итого"). Оптимальным решением такой задачи было бы выборочное чтение строк и их запись в документ Word, но насколько я знаю на Visual Basic нельзя читать выборочные строки. Или лучше считать весь текстовый файл полностью а потом вырезать ненужное. Если так то какими функциями мне пользоваться.

Все дело в том что этот текстовый файл является статистикой. Номера строк, их названия и названия таблиц остаются одинаковыми, меняются только цифры. Почти каждый день мне приходит эта статистика, но так как нужны не все строки, ненужные приходится удалять. А если реально, то таблиц намного больше. Вот я каждое утро копирую этот текстовый файл в Word. Выставляю нужный шрифт и его размер что бы эти псевдо таблицы не распадались и вырезаю не нужное. Так происходит уже не один месяц и с каждым днем растет мое желание автоматизировать этот процесс с помощью макросов в MS Word. Вот я и обратился к вам за помощью или хотя бы советом как лучше сделать такой макрос.
...
Рейтинг: 0 / 0
Подскажите как правильно создать макрос
    #37690617
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Почему нельзя читать выборочно? Читать построчно - ненужное пропускать.
2) Нужно формальное описание, что такое вторая таблица. Она начинается каждый раз с фиксированной строки или надо искать ее начало по формальному признаку?

Если же все абсолютно фиксировано, и никаких отклонений нет, почему бы просто не включить запись макроса, сделать все действия, сохранить макрос и пользоваться им, абсолютно не вдаваясь в подробности, как там внутри все устроено?
...
Рейтинг: 0 / 0
Подскажите как правильно создать макрос
    #37690662
ruslan99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все строки фиксированы. Если я вас правильно понял:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Dim str
i = 1 'номер строки
Open "R:\temp\NameTxtFile.txt" For Input As #1
Do While Not EOF(1)
    Input #1, str
    
    'выполняем проверку нужна ли нам строка (проверяем переменную i), если нужна то
        Selection.TypeText Text:=str
        Selection.TypeParagraph

    i = i + 1
Loop
Close #1
End Sub



Но как лучше выполнять проверку нужна ли нам строка. Записать номера нужных строки в массив и каждый раз проверять массив на наличие элемента?

В текстовом файле 4000 строк.
...
Рейтинг: 0 / 0
Подскажите как правильно создать макрос
    #37690699
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
никак не пойму, почему недостаточно условия типа
Код: vbnet
1.
If i<=10 Or (i>30 And i<40) Or (i>100 And i<110) Then

ведь здесь нет требования к гибкой системе конфигурирования?
...
Рейтинг: 0 / 0
Подскажите как правильно создать макрос
    #37690713
ruslan99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо вам. Я кажется начинаю понимать. Вы мне написали условия для трех таблиц, а если я напишу подобным методом условия для 20 таблиц, нормально ли будет работать макрос?
...
Рейтинг: 0 / 0
Подскажите как правильно создать макрос
    #37690735
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нормально

если не стоит задача гибкого конфигурирования или настройки обработки трех сотен таблиц, то такой способ сойдет
...
Рейтинг: 0 / 0
Подскажите как правильно создать макрос
    #37690764
ruslan99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо вам за помощь.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Подскажите как правильно создать макрос
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]