Страницы: 1
RSS
Перенос части таблицы Excel в Word
 
Всем доброго дня.
Помогите пожалуйста решить вопрос.
Использую Excel 2010.

Необходимо перенести часть таблицы из excel в word таким образом, чтобы:
1. внутри таблицы можно было гибко изменять данные с использованием формул (с этим проблем нет)
2. чтобы не нужно было корректировать размер (сразу вставлялось в размер листа, не выходя за границы), [понятно, что можно потянуть за уголок и поправить, но требуется именно вставка сразу в размер].
3. и чтобы при клике внутрь таблицы невозможно было проскроливанием просмотреть весь исходный лист excel.
Должно получится так (файл 1)
Я вставляю специальной вставкой и получается таким оразом (файл 2.)

т.е.
1) таблицу нужно подгонять вручную в размер листа и 2) при клике внутрь ты легко можешь проскролить и увидеть все данные таблицы (а не только область, изначально выделенную для копирования).
Подскажите, пожалуйста, как исправить эти два недостатка. Прилагаю также файл 3 - исходный excel, откуда берутся данные для файла 2. Исходник для файла к сожалению 1 не сохранился.
Заранее спасибо.
 
Можно воспользоваться следующим алгоритмом
В Excel
1. Определяем номера последних столбца и строки таблицы LastCol, LastRow копируемой области
2. Выделяем ячейку Cells(LastRow + 1, LastCol + 1).Select и закрепляем область ActiveWindow.FreezePanes = True, чтобы не было прокрутки
3. Необязательно, скрываем столбцы с LastCol + 1 до последнего на листе, аналогично скрываем строки.
4. Необязательно, убираем заголовки столбцов и строк ActiveWindow.DisplayHeadings = False
5. Копируем требуемую область.
В Word
1. Определяем число InlineShapes.Count (shapesCount)
2. Вставляем скопированную таблицу Selection.PasteSpecial Link:=False, DataType:=wdPasteOLEObject, Placement:=wdInLine, DisplayAsIcon:=False
3. Определяем конечную высоту h = 468 * InlineShapes(shapesCount + 1).Height / InlineShapes(shapesCount + 1).Width
4. Настраиваем требуемую ширину и высоту для вставленного объекта InlineShapes(shapesCount + 1).Width = 468, InlineShapes(shapesCount + 1).Height = h
468 это ширина вставленной таблицы Excel в пунктах в "файл 1.docx"
Изменено: anvg - 17.05.2013 03:10:38
Страницы: 1
Читают тему
Наверх