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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.04.2019, 17:09   #1
Татьяна0602
Новичок
Джуниор
 
Регистрация: 08.04.2019
Сообщений: 8
По умолчанию сделала запись макроса на 4х строчках, в итоге он выполняет 4 строки а мне нужно 10000, можно ли просто исправить мой макрос?

имеется большая таблица, сделала запись макроса на 4х строчках, в итоге он выполняет 4 строки а мне нужно 10000, можно ли просто исправить мой макрос?
Татьяна0602 вне форума Ответить с цитированием
Старый 08.04.2019, 18:09   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Татьяна0602 Посмотреть сообщение
можно ли просто исправить мой макрос?
да, можно.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.04.2019, 18:10   #3
Татьяна0602
Новичок
Джуниор
 
Регистрация: 08.04.2019
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
да, можно.
А как если не секрет с макросами имела дело лет 7 назад уже все забылось

Последний раз редактировалось Татьяна0602; 08.04.2019 в 18:17.
Татьяна0602 вне форума Ответить с цитированием
Старый 08.04.2019, 18:16   #4
Татьяна0602
Новичок
Джуниор
 
Регистрация: 08.04.2019
Сообщений: 8
По умолчанию

У меня вот такой макрос получился.
Вложения
Тип файла: doc Sub Строки.doc (37.0 Кб, 17 просмотров)
Татьяна0602 вне форума Ответить с цитированием
Старый 08.04.2019, 20:08   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Татьяна0602 Посмотреть сообщение
У меня вот такой макрос получился.
во-первых, Вы забыли упомянуть, что речь идёт про MS WORD

во-вторых, опишите, какую задачу Вы решаете (что должен делать ваш макрос)

в-третьих, приложите тестовый файл, в котором видно, как работает макрос и почему его нужно повторять много раз.
(там есть какая-то хитрая таблица со множеством строк, судя по всему)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.04.2019, 20:21   #6
Татьяна0602
Новичок
Джуниор
 
Регистрация: 08.04.2019
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
во-первых, Вы забыли упомянуть, что речь идёт про MS WORD

во-вторых, опишите, какую задачу Вы решаете (что должен делать ваш макрос)

в-третьих, приложите тестовый файл, в котором видно, как работает макрос и почему его нужно повторять много раз.
(там есть какая-то хитрая таблица со множеством строк, судя по всему)
1000 извинений, да действительно это Word
задача до жути монотонная ибо в наличии таблица из 4 столбцов и огромного количества строк которую необходимо объединить в 1 столбец и тоже количество строк.
маленький фрагмент прилагаю
Вложения
Тип файла: doc Имеем Таблицу вот такого плана.doc (45.5 Кб, 16 просмотров)
Татьяна0602 вне форума Ответить с цитированием
Старый 08.04.2019, 22:23   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

попробуйте такой макрос:

Код:
Sub MergeTableCells()
Dim oTable As Word.Table
Dim oRow As Word.Row
Dim oCell As Word.Cell, uText$

Dim numberOfColumnsInCurrentTable As Integer
Dim currentTableIndex As Integer

currentTableIndex = ActiveDocument.Range(0, Selection.Tables(1).Range.End).Tables.Count

Set oTable = ActiveDocument.Tables(currentTableIndex)


For Each oRow In oTable.Rows
    uText = ""
    For Each oCell In oRow.Cells
       uText = uText & oCell.Range.Text
       oCell.Range.Text = ""
    Next
    oRow.Cells.Merge
    uText = Replace(uText, vbCr, " ")
    'ActiveDocument.Tables(1).Cell(1, 1).Range.Text = uText
    oTable.Cell(oRow.Index, 1).Range.Text = uText
Next
End Sub
Внимание!
В коде определяется текущая таблица.
Поэтому, при использовании, перед вызовом макроса ОБЯЗАТЕЛЬНО сначал установите курсор внутрь той таблицы, которую надо обработать.
Потом вызывайте макрос MergeTableCells
Serge_Bliznykov вне форума Ответить с цитированием
Старый 09.04.2019, 04:43   #8
Татьяна0602
Новичок
Джуниор
 
Регистрация: 08.04.2019
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
попробуйте такой макрос:

Код:
Sub MergeTableCells()
Dim oTable As Word.Table
Dim oRow As Word.Row
Dim oCell As Word.Cell, uText$

Dim numberOfColumnsInCurrentTable As Integer
Dim currentTableIndex As Integer

currentTableIndex = ActiveDocument.Range(0, Selection.Tables(1).Range.End).Tables.Count

Set oTable = ActiveDocument.Tables(currentTableIndex)


For Each oRow In oTable.Rows
    uText = ""
    For Each oCell In oRow.Cells
       uText = uText & oCell.Range.Text
       oCell.Range.Text = ""
    Next
    oRow.Cells.Merge
    uText = Replace(uText, vbCr, " ")
    'ActiveDocument.Tables(1).Cell(1, 1).Range.Text = uText
    oTable.Cell(oRow.Index, 1).Range.Text = uText
Next
End Sub
Внимание!
В коде определяется текущая таблица.
Поэтому, при использовании, перед вызовом макроса ОБЯЗАТЕЛЬНО сначал установите курсор внутрь той таблицы, которую надо обработать.
Потом вызывайте макрос MergeTableCells
увы выбрасывает в панель редактирования макроса.. там ничего менять же ненадо было?
пора вспоминать как это делается
Татьяна0602 вне форума Ответить с цитированием
Старый 09.04.2019, 08:03   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Татьяна0602 Посмотреть сообщение
увы выбрасывает в панель редактирования макроса..
не понимаю, о чём Вы...


Цитата:
Сообщение от Татьяна0602 Посмотреть сообщение
там ничего менять же ненадо было?
нет.


Цитата:
Сообщение от Татьяна0602 Посмотреть сообщение
пора вспоминать как это делается
я думал, что Вы знаете, как работать с макросами.

ладно. попробуем по другому.
я вставил макрос в ваш файл с таблицей.
попробуйте использовать его.

Имеем Таблицу вот такого плана.zip

Напоминаю, что макрос можно вызвать по Alt-F8
Serge_Bliznykov вне форума Ответить с цитированием
Старый 09.04.2019, 11:31   #10
Татьяна0602
Новичок
Джуниор
 
Регистрация: 08.04.2019
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
я думал, что Вы знаете, как работать с макросами.

ладно. попробуем по другому.
я вставил макрос в ваш файл с таблицей.
попробуйте использовать его.

Вложение 96316

Напоминаю, что макрос можно вызвать по Alt-F8
Я раньше, пусть поверхностно но знакомилась с макросами и даже пользовалась, но забыла все за 4года декрета.
ОГРОМАДНОЕ СПАСИБО все работает и реально избавляет от монотонной ручной работы
Татьяна0602 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно просто узнать «id» следующей строки в DataSet KBO Помощь студентам 2 09.09.2015 20:06
нужно сделать, чтобы в программе можно вводить какие строки сравнивать, у какой строки определить длину и так далее, по всем задан Евгения Е Общие вопросы C/C++ 0 18.12.2014 20:13
Макрос не выполняет, то что записал valerij Microsoft Office Excel 21 16.11.2010 23:41
Уважаемые программисты нужно как можно скорее исправить задачу по Паскалю Axandra Помощь студентам 2 29.05.2009 20:12