Скопируйте динамический диапазон Excel в Word как цифру

Я пытаюсь скопировать как цифры в документ Word динамический диапазон Excel, который изменяется от случая к случаю.

На первом листе будет размещаться пользователь. Затем на четвертом листе будут выполнены некоторые вычисления для каждой строки входов. То, что я хотел бы сделать, – это скопировать в текстовый документ содержимое четвертого листа до последней строки ввода. Проблема в том, что последний номер строки ввода изменит форму на случай.

Еще одна трудность заключается в том, что на каждой странице Word есть место для 45 строк, поэтому, если вход выходит за пределы этого числа, он должен быть разбит на многократные страницы.

У меня есть код, который работает для статического диапазона, и я хотел бы изменить его работу с динамическим диапазоном.

Sub copyword() Dim objWord As Object, objDoc As Object, Rng As Object Dim wb As Workbook Dim n As Integer Set wb = ActiveWorkbook 'see if Word is already open On Error Resume Next Set objWord = GetObject(, "Word.Application") On Error GoTo 0 'not open - create a new instance and add a document If objWord Is Nothing Then Set objWord = CreateObject("Word.Application") objWord.Visible = True objWord.documents.Add End If Set objDoc = objWord.activedocument Set Rng = objWord.Selection Worksheets(2).Activate ActiveWindow.View = xlNormalView wb.Worksheets(2).Range("A1:O47").CopyPicture Appearance:=xlScreen, Format:=xlPicture Rng.Paste Rng.typeparagraph ActiveWindow.View = xlPageBreakPreview Worksheets(2).Activate ActiveWindow.View = xlNormalView wb.Worksheets(2).Range("U1:AI47").CopyPicture Appearance:=xlScreen, Format:=xlPicture Rng.Paste Rng.typeparagraph ActiveWindow.View = xlPageBreakPreview End Sub 

Чтобы определить последнюю строку с данными в столбце A (не проверено):

 Sub copyword() Dim objWord As Object, objDoc As Object, Rng As Object Dim wb As Workbook, n As Integer, lr As Long Set wb = ActiveWorkbook On Error Resume Next 'see if Word is already open Set objWord = GetObject(, "Word.Application") On Error GoTo 0 If objWord Is Nothing Then 'not open - create a new instance and add a document Set objWord = CreateObject("Word.Application") objWord.Visible = True objWord.documents.Add End If Set objDoc = objWord.activedocument Set Rng = objWord.Selection With wb.Worksheets(2) 'determine last row ***************************************** lr = .Cells("A" & .UsedRange.Row + .UsedRange.Rows.Count).End(xlUp) .Activate ActiveWindow.View = xlNormalView 'use last row ********************************************************* .Range("A1:O" & lr).CopyPicture Appearance:=xlScreen, Format:=xlPicture Rng.Paste Rng.typeparagraph ActiveWindow.View = xlPageBreakPreview .Activate ActiveWindow.View = xlNormalView 'use last row ********************************************************** .Range("U1:AI" & lr).CopyPicture Appearance:=xlScreen, Format:=xlPicture Rng.Paste Rng.typeparagraph ActiveWindow.View = xlPageBreakPreview End With End Sub 
Interesting Posts

Excel 2010 F2-Enter Кнопка макроса

EXCEL Найти ближайший номер почтового индекса, где состояния равны

Автоматически копировать столбец A в столбец B только со значениями в электронной таблице

Excel подключается к TFS 2012 без установки VS 2012

Как удалить все данные из подключения SQL Server к Excel?

Ошибка «91» Объектная переменная или с не заданной переменной блока

как удалить именованные диапазоны, содержащие «флаги»,

Определенная заявка или объектная ошибка при создании макроса для поворота

ЕСЛИ ЕСЛИ формулы в сочетании с текущими итоговыми формулами

Запуск макросов в макросе в excel

Вставьте данные в конкретную ячейку в excel C #

Excel Interop – установка имени файла перед сохранением

VBA: как скопировать строку и вставить строку внизу с помощью функции смещения

VBA excel: для Every..Next не проходит выбранный диапазон?

Как найти максимальное значение в строке? превосходить

Давайте будем гением компьютера.