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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2017, 17:33   #1
clever077
Новичок
Джуниор
 
Регистрация: 13.05.2017
Сообщений: 4
По умолчанию Выделение нескольких строк в таблице Word макосом

Здравствуйте!
Столкнулся с проблемой - не знаю как выделить макросом несколько строк в таблице WORD сразу.
Как выделить одну знаю: Это работает
Selection.Tables(1).Rows(1).Select

Пробовал макрос записать Выделил строки в ручную и скопировал их буфер. Получил это:

Sub Макрос2()
'
' Макрос2 Макрос


Selection.Copy
End Sub

Может подскажите другое решение?
Суть Есть большой файл Word 462 страницы там несколько таблиц 3 или 4. Мне надо эту таблицу скопировать в excel. Полностью скопировать в буфер удается, но вставить в excel оттуда нет - пишет что невозможно вставить. По столбцам копировать тоже не дает- пишет разной длины.

Единственный способ копировать по строчно или несколько строк в буфер и вставлять в excel
Как это сделать макросом?
clever077 вне форума Ответить с цитированием
Старый 13.05.2017, 18:47   #2
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,077
По умолчанию

Цитата:
Как это сделать макросом?
для этого надо сначала увидеть пример таблицы

может достаточно будет сохранить вордовский файл в НТМ-формате
и уже его открыть екселем(без копирования!!!)
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Старый 14.05.2017, 06:46   #3
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,034
По умолчанию

ну и надо начинать с того, может не стоить выделять? цель выделения?
ну или по аналогии
Код:
'выделить в документе промежуток ...
        ActiveDocument.Range( _
                Start:=ActiveDocument.Lists(1).Range.Start, _
                End:=ActiveDocument.Lists(1).Range.Start).Select
Ципихович Эндрю вне форума Ответить с цитированием
Старый 14.05.2017, 16:50   #4
clever077
Новичок
Джуниор
 
Регистрация: 13.05.2017
Сообщений: 4
По умолчанию

Цитата:
Сообщение от shanemac51 Посмотреть сообщение
для этого надо сначала увидеть пример таблицы

может достаточно будет сохранить вордовский файл в НТМ-формате
и уже его открыть екселем(без копирования!!!)
Пробовал не получилось
clever077 вне форума Ответить с цитированием
Старый 14.05.2017, 16:56   #5
clever077
Новичок
Джуниор
 
Регистрация: 13.05.2017
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Ципихович Эндрю Посмотреть сообщение
ну и надо начинать с того, может не стоить выделять? цель выделения?
ну или по аналогии
Код:
'выделить в документе промежуток ...
        ActiveDocument.Range( _
                Start:=ActiveDocument.Lists(1).Range.Start, _
                End:=ActiveDocument.Lists(1).Range.Start).Select
Спасибо попробую!
А в 3-ей стоке кода
End:=.......Range.Start тоже start. не End
попробую оба варианта. Методом проб и ошибок

Цель выделения чтобы скопировать в буфер, а оттуда в Excel
Если выделить несколько цикл перебора будет короче по времени

Пока лучшее что придумал сам это написать 2 макроса 1 в Word
Цикл перебора строк (по одной)
копирование в буфер
запуск макроса excel после копирования

2 Макрос excel
Определение занятых строк
активация первой пустой
вставка из буфера

Думаю должно сработать

Не знаю что такое VBE в Word?
Я думал это VB Excel, но Word ругается пишет нет доверия

А было бы здорово
With Application.VBE и далее макрос Excel.....

Последний раз редактировалось clever077; 14.05.2017 в 17:06. Причина: дополнение
clever077 вне форума Ответить с цитированием
Старый 14.05.2017, 21:15   #6
clever077
Новичок
Джуниор
 
Регистрация: 13.05.2017
Сообщений: 4
По умолчанию

Как выделить в таблице несколько строк не знаю, но решение своего вопроса нашел:
работает медленно, но работает
office 2016
Важно- перед запуском макроса таблицу надо выбрать - навести курсор и кликнуть мышкой

В Word

Sub for_i()
Dim objXls As Object
Set objXls = CreateObject("Excel.Application")
objXls.Workbooks.Open "D:\Macros2017\MWE.xlsm" ' Открытие файла Excel с нужным макросом -открывать 1 раз

a = Selection.Tables(1).Rows.Count
'а=35292 строк в таблице
For i = 1 To a
Selection.Tables(1).Rows(i).Select
Selection.Copy

objXls.Application.Visible = True
objXls.Run ("WDEX") ' WDEX название макроса excel
Next i
End Sub

В Excel

Sub WDEX()
irow = Cells(Rows.Count, 1).End(xlUp).Row
Cells(irow + 1, 1).Select
With Selection
ActiveSheet.Paste
End With
Exit Sub 'Обязательно иначе застревает на end sub и требует нажатия f5
End Sub

Целиком таблицу еще не перекинул (может еще что всплывет), но 5 строк подряд скопировал

Если выделить несколько строк и скопировать дело будет двигаться быстрее


'выделить в документе промежуток ...
ActiveDocument.Range( _
Start:=ActiveDocument.Lists(1).Rang e.Start, _
End:=ActiveDocument.Lists(1).Range. Start).Select

У меня не работает....

Кстати по поводу VBE -EXCEL - безопасность - есть пункт доверять VBA

Последний раз редактировалось clever077; 14.05.2017 в 23:25.
clever077 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
выделение ячеек в таблице word из VBA excel Святой Дьявол Microsoft Office Excel 5 12.11.2022 00:57
Как программно выделить строки и снять выделение со строк в таблице CListCtrl ? erslgoeirjh Visual C++ 1 31.10.2016 13:09
Удаление строк в таблице Word jus_de C# (си шарп) 0 17.11.2014 11:11
Выделение нескольких ячеек York C++ Builder 7 23.02.2012 18:18
выделение нескольких строк цветов в iwdbgrid multidron1 БД в Delphi 0 19.10.2010 12:40