Как скопировать форматированный текст из Excel в Word с помощью vba быстрее. Vba из excel в word


vba - вставка из Excel в текстовый документ

Я копирую ячейки из excel в открытый документ. то, как я делаю это, просто копирует содержимое ячейки в буфер обмена и ЗАМЕНА КЛАВИАТУРЫ в текстовом документе так:

if cell A1 = "some word" Мне нужно также заменить строку "QUERYA1" в документе документа

Я делаю это так:

Sub NoFormatPaste() wdFind.Replacement.Text = "" wdFind.Forward = True wdFind.Wrap = wdFindContinue wdFind.Execute If IsEmpty(Selection.Text) And Len(Selection.Text) = 0 Then ClipEmpty.PutInClipboard appWd.Selection.PasteSpecial DataType:=wdPasteText End Else appWd.Selection.PasteSpecial DataType:=wdPasteText End If CutCopyMode = False End Sub

когда этот подпрограмм работает, он работает на каждом поле, за исключением того, что он дает ошибку, если ячейка пуста. У меня есть эта формула в ячейке: =+IF(K10="XXX","",K10)

когда эта формула выдает НИЧЕГО или пустое, и я запускаю свой макрос, я получаю сообщение об ошибке PASTING this в слово. Я получаю сообщение об ошибке 4168 command failed/command execution в этой строке:

appWd.Selection.PasteSpecial DataType:=wdPasteText

вот мой полный код:

Dim appWd As Word.Application Dim wdFind As Object Dim ClipEmpty As New MSForms.DataObject Dim ClipT As String Sub FormatPaste() wdFind.Replacement.Text = "" wdFind.Forward = True wdFind.Wrap = wdFindContinue wdFind.Execute If IsEmpty(Selection.Text) And Len(Selection.Text) = 0 Then ClipEmpty.PutInClipboard appWd.Selection.Paste End Else appWd.Selection.Paste End If CutCopyMode = False End Sub Sub NoFormatPaste() wdFind.Replacement.Text = "" wdFind.Forward = True wdFind.Wrap = wdFindContinue wdFind.Execute If IsEmpty(Selection.Text) And Len(Selection.Text) = 0 Then ClipEmpty.PutInClipboard appWd.Selection.PasteSpecial DataType:=wdPasteText End Else appWd.Selection.PasteSpecial DataType:=wdPasteText End If CutCopyMode = False End Sub Sub CopyDatatoWord() Dim docWD As Word.Document Dim sheet1 As Object Dim sheet2 As Object Dim SaveCell1 As String Dim SaveCell2 As String Dim SaveCell3 As String Dim Dir1 As String Dim Dir2 As String Set appWd = CreateObject("Word.Application") appWd.Visible = True 'Set docWD = appWD.Documents.Open("S:\Practice Quarterly Reports\2011 Q1 - V5\Practice Profile Template 2011.docx") Set docWD = appWd.Documents.Open("C:\Documents and Settings\jhill\Desktop\Practice Profile Template 2011.docx") 'Select Sheet where copying from in excel Set sheet1 = Sheets("TABLES") Set sheet2 = Sheets("REPORT INFO") Set wdFind = appWd.Selection.Find ClipT = " " ClipEmpty.SetText ClipT sheet1.Range("B3:B6").Copy wdFind.Text = "Qwerty01" Call FormatPaste sheet1.Range("B10:B15").Copy wdFind.Text = "Qwerty02" Call FormatPaste sheet1.Range("C21:D28").Copy wdFind.Text = "Qwerty03" Call FormatPaste sheet1.Range("B32:F42").Copy wdFind.Text = "Qwerty04" Call FormatPaste sheet1.Range("B46:D52").Copy wdFind.Text = "Qwerty05" Call FormatPaste sheet1.Range("B58:F68").Copy wdFind.Text = "Qwerty06" Call FormatPaste sheet1.Range("B74:G84").Copy wdFind.Text = "Qwerty07" Call FormatPaste sheet1.Range("B87").Copy wdFind.Text = "Qwerty08" Call NoFormatPaste sheet1.Range("B88").Copy wdFind.Text = "Qwerty09" Call NoFormatPaste sheet1.Range("B89").Copy wdFind.Text = "Qwerty10" Call NoFormatPaste sheet1.Range("B90").Copy wdFind.Text = "Qwerty11" Call NoFormatPaste sheet1.Range("B91").Copy wdFind.Text = "Qwerty12" Call NoFormatPaste sheet1.Range("B92").Copy wdFind.Text = "Qwerty13" Call NoFormatPaste sheet1.Range("B93").Copy wdFind.Text = "Qwerty14" Call NoFormatPaste sheet1.Range("B94").Copy wdFind.Text = "Qwerty15" Call NoFormatPaste sheet2.Range("D4").Copy wdFind.Text = "Qwerty16" Call NoFormatPaste sheet2.Range("B5").Copy wdFind.Text = "Qwerty17" Call NoFormatPaste sheet2.Range("D4").Copy wdFind.Text = "Qwerty18" Call NoFormatPaste sheet2.Range("B8").Copy wdFind.Text = "Qwerty19" Call NoFormatPaste sheet2.Range("B9").Copy wdFind.Text = "Qwerty20" Call NoFormatPaste sheet2.Range("B10").Copy wdFind.Text = "Qwerty21" Call NoFormatPaste sheet2.Range("B11").Copy wdFind.Text = "Qwerty22" Call NoFormatPaste sheet2.Range("B12").Copy wdFind.Text = "Qwerty23" Call NoFormatPaste sheet2.Range("B13").Copy wdFind.Text = "Qwerty24" Call NoFormatPaste sheet2.Range("B14").Copy wdFind.Text = "Qwerty25" Call NoFormatPaste sheet2.Range("B15").Copy wdFind.Text = "Qwerty26" Call NoFormatPaste sheet2.Range("B16").Copy wdFind.Text = "Qwerty27" Call NoFormatPaste sheet2.Range("B17").Copy wdFind.Text = "Qwerty28" Call NoFormatPaste sheet2.Range("B5").Copy wdFind.Text = "Qwerty29" Call NoFormatPaste sheet2.Range("B5").Copy wdFind.Text = "Qwerty30" Call NoFormatPaste sheet2.Range("B5").Copy wdFind.Text = "Qwerty31" Call NoFormatPaste SaveCell1 = sheet2.Range("D3").Text SaveCell2 = sheet2.Range("B6").Text SaveCell3 = SaveCell2 & "\" & SaveCell1 Dir1 = "\\annapurna\Shared\Practice Quarterly Reports\2011 Q1 - V5\ & SaveCell2" Dir2 = "\\annapurna\Shared\Practice Quarterly Reports\2011 Q1 - V5\ & SaveCell3" If Len(Dir1) = False Then MkDir Dir1 End If 'docWD.SaveAs (Dir2 & ".docx") docWD.SaveAs ("\\annapurna\Shared\Practice Quarterly Reports\Q1_2011\Test.docx") 'appWD.Quit Set appWd = Nothing Set docWD = Nothing Set appXL = Nothing Set wbXL = Nothing End Sub

что я делаю неправильно? в чем причина, почему я получаю сообщение об ошибке только на пасте пустого

источник поделиться

qaru.site

Как скопировать форматированный текст из Excel в Word с помощью vba быстрее

Задача: Я хочу скопировать форматированный текст из Excel на Word с использованием excelvba-скрипта. Сценарий копирует информацию послушно, но слишком медленно.

Можете ли вы дать мне подсказку, как ускорить процесс, пожалуйста?

Мои подходы до сих пор документированы в этом фиктивном документе. Сценарий предполагает, что ячейки C1: C100 содержат сформованный текст.

Общая информация. Я пишу excelvba makro, который копирует сформированные текстовые блоки в документ слова. Для каждого текстового блока есть две версии. Макрос отслеживает изменения word-style. (Удаление: текст красной и зачеркнутой и т. Д.) и копирует результат в третий колонок. Эта часть работает как очарование. Затем третий столбец копируется в текстовый документ. Эта часть работает на моей машине (i7-3770, ssd, 8 Gb Ram), но не на машине с бедными душами, которая должна работать со сценарием (amd Athlon 220) Размер производства составляет 700-1000 текстовых блоков, с 100- 1000 символов.

option explicit Sub start() Dim wapp As Word.Application Dim wdoc As Word.Document Set wapp = CreateObject("word.application") wapp.Visible = False Application.ScreenUpdating = False Set wdoc = wapp.Documents.Add 'Call copyFormattedCellsToWord(wdoc) 'Call copyFormattedCellsToWordForEach(wdoc) 'Call copyWholeRange(wdoc) Call concatenateEverythingInAStringAndCopy(wdoc) wapp.Visible = True End Sub 'desired output-result (every cell in a new line and formatting preserved) meets the specs, but to slow Sub copyFormattedCellsToWord(wdoc As Word.Document) Dim counter As Long Worksheets(1).Select For counter = 1 To 100 Worksheets(1).Range("C" & counter).Copy wdoc.Range(wdoc.Range.End - 1, wdoc.Range.End).PasteSpecial Placement:=wdInLine, DataType:=wdPasteHTML Next counter End Sub 'desired output-result, a tiny bit faster (might be only superstition), but still not fast enough Sub copyFormattedCellsToWordForEach(wdoc As Word.Document) Dim cell As Range Worksheets(1).Select For Each cell In Worksheets(1).Range("C1:C100") cell.Copy wdoc.Range(wdoc.Range.End - 1, wdoc.Range.End).PasteSpecial Placement:=wdInLine, DataType:=wdPasteHTML Next cell End Sub 'fast enough, but introduces a table in the word document and therefore 'doesn't meet the specs Sub copyWholeRange(wdoc As Word.Document) Worksheets(1).Range("C1:C100").Copy wdoc.Range(wdoc.Range.End - 1, wdoc.Range.End).PasteSpecial Placement:=wdInLine, DataType:=wdPasteHTML End Sub 'fast enought, looses the formatting Sub concatenateEverythingInAStringAndCopy(wdoc As Word.Document) Dim wastebin As String Dim cell As Range wastebin = "" Worksheets(1).Select For Each cell In Worksheets(1).Range("C1:C100") wastebin = wastebin & cell.Value Next cell Range("D1") = wastebin Range("D1").Copy wdoc.Range(wdoc.Range.End - 1, wdoc.Range.End).PasteSpecial Placement:=wdInLine, DataType:=wdPasteHTML End Sub

excel vba excel-vba ms-word formatted-text407

stackoverrun.com

Решение: И вновь из excel в word

Доброго времени суток. к моему глубокому сожалению, просмотрев кучу теми макросов не нашёл нужного мне, не уверен в существовании его вовсе, но попробую сформулировать вопрос: есть два файла, word и excel. Необходим макрос который подставлял бы значения из excel в нужные места файла word, при этом не загоняя весь файл word в переменную, поскольку в тексе есть тоже таблица. я нашёл похожий макрос тут:Sub main()   Dim wdApp As Object Dim wdDoc As Object       HomeDir$ = ThisWorkbook.Path         Set wdApp = CreateObject("Word.Application")         ii% = 3         Do           If Cells(ii%, 1).Value = "" Then Exit Do             IP$ = Cells(ii%, 1).Value       Basket$ = Cells(ii%, 2).Value       Position$ = Cells(ii%, 3).Value       Adress$ = Cells(ii%, 4).Value       NRI$ = Cells(ii%, 5).Value       BS$ = Cells(ii%, 6).Value       ID$ = Cells(ii%, 7).Value             FileCopy HomeDir$ + "\SZ_Ericsson_Traffic_Node_Fish3.docx", HomeDir$ + "\SZ_Ericsson_Traffic_Node_" + Position$ + "_" + BS$ + ".docx"               Set wdDoc = wdApp.Documents.Open(HomeDir$ + "\SZ_Ericsson_Traffic_Node_" + Position$ + "_" + BS$ + ".docx")       wdDoc.Range.Text = Replace$(wdDoc.Range.Text, "&IP", IP$) wdDoc.Range.Text = Replace$(wdDoc.Range.Text, "&Basket", Basket$) wdDoc.Range.Text = Replace$(wdDoc.Range.Text, "&Position", Position$) wdDoc.Range.Text = Replace$(wdDoc.Range.Text, "&Adress", Adress$) wdDoc.Range.Text = Replace$(wdDoc.Range.Text, "&NRI", NRI$) wdDoc.Range.Text = Replace$(wdDoc.Range.Text, "&BS", BS$) wdDoc.Range.Text = Replace$(wdDoc.Range.Text, "&ID", ID$)         wdDoc.Save       wdDoc.Close             ii% = ii% + 1           Loop           wdApp.Quit       MsgBox "Готово"   End SubНо этот макрос, как я понял не заменяет конкретное значение в шаблоне, а полностью весь шаблон загоняет в переменную, в которой места нет существующей в шаблоне таблице. Заранее спасибо, и прошу прощения если не увидел такой темы.

studassistent.ru

vba - VBA Найти текст в Word Doc из Excel не работает - Stumped

Это что-то наполовину из-за того, что строилось так жалко, если это сбивало с толку

У меня есть этот код, где я определил словарь в excel. Оттуда я хочу найти текст из "Ключа" в Word Document, а затем, когда он найдет, я хочу продолжить с другим кодированием.

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

Обратите внимание на линию:

For Each Key In Dict

Все, что я попросил, это найти текст в строке C Я знаю, что C содержит значение, так как я добавил MsgBox для проверки, и я также добавил его в буфер обмена, чтобы я мог попробовать вручную найти текст - и могу, если я буду искать вручную

Но при запуске/выполнении кода команда .find.execute кажется несколько проигнорированной, как если бы она даже не пыталась выполнить поиск через Document, а blnFound Boolean возвращается False каждый раз, blnFound к Next. У меня также есть документ (открытый по коду), отображаемый на моем экране в то время, и на нем ничего не происходит.

Может ли кто-нибудь посоветовать мне, что я здесь делаю неправильно? Я полностью сбит с толку.

Благодарю!

Sub FindReplaceInWord2() Dim Wbk As Workbook: Set Wbk = ThisWorkbook Dim Wrd As New Word.Application Dim Dict As Object Dim RefList As Range, RefElem As Range Dim A As String Dim B As String Dim C As String Dim test As New DataObject Dim blnFound As Boolean Wrd.Visible = True Dim TokenDoc As Document Set TokenDoc = Wrd.Documents.Open("\\SERVER\Client\Table.dot") Set Dict = CreateObject("Scripting.Dictionary") Set RefList = Wbk.Sheets("Sheet1").Range("A1:A236") With Dict For Each RefElem In RefList On Error Resume Next If Not .Exists(RefElem) And Not IsEmpty(RefElem) Then A = RefElem.Value .Add RefElem.Value, RefElem.Offset(0, 1).Value B = RefElem.Value End If Next RefElem End With For Each Key In Dict Set test = New DataObject 'MsgBox Key test.SetText (Key) test.PutInClipboard C = Key MsgBox C With Wrd.ActiveDocument.Find .Text = C End With blnFound = Wrd.ActiveDocument.Find.Execute If blnFound = True Then MsgBox = "Yay for working it out" Else MsgBox = "Boo, it didn't Work" End If Next Key End Sub

PS. Я тоже пробовал

Wrd.Selection.Find.text = C blnFound = Wrd.Selection.Find.Execute

и добавив это перед поиском

TokenDoc.Activate

qaru.site

vba - Запись данных из Excel в Word

  • Я хочу использовать Excel для хранения имен тегов в столбце A и связанного с ними "заменяющего текста" в столбце B. Когда код запускается, ему необходимо собирать каждый тег по одному (по строкам), искать все Word для этих слов и замените их соответствующими заменами.
  • Я заметил, что специальные теги в верхних и нижних колонтитулах не заменяются. Я обратился к этой статье (http://word.mvps.org/faqs/customization/ReplaceAnywhere.htm) и обнаружил, что, работая с диапазоном диапазонов (или перемещаясь по всем доступным диапазонам истории в документе), я смог сделать это.
  • Я улучшил свой код, как рекомендовано в ссылке выше, и это сработало, пока мой код был встроен в мой "Обычный" Word файл, тем самым используя мой код VBA из Word для работы с другим документом Word. Однако целью является использование VBA Excel для работы с заменами при чтении файла Excel.
  • Когда я переместил код в Excel, я повесил трубку на ошибку Automation, которая читает,

"Ошибка времени выполнения" -2147319779 (8002801d) ': Ошибка автоматизации библиотеки не зарегистрирована. ".

  • Я искал ответы на вопрос о реестре реестра, используя "Word.Application.12" вместо "Word.Application".

У меня есть Windows 7, 64-разрядная машина с Microsoft Office 2007. У меня есть следующие библиотеки:

  • Excel:

    • Visual Basic для приложений
    • Библиотека объектов Microsoft Excel 12.0
    • Автоматизация OLE
    • Библиотека объектов Microsoft Access 12.0
    • Библиотека объектов Microsoft Outlook 12.0
    • Библиотека объектов Microsoft Word 12.0
    • Библиотека объектов Microsoft Forms 2.0
    • Библиотека объектов Microsoft Office 14.0
  • Слово:

    • Visual Basic для приложений
    • Библиотека объектов Microsoft Word 12.0
    • Автоматизация OLE
    • Библиотека объектов Microsoft Office 12.0

У меня нет проблем с работой внутри Excel в отношении VBA. Обычно я передаю набор строк этой функции, но на данный момент я встроил строки внутри функции, как если бы я планировал только замену одной строки (для любого количества экземпляров), с другой заданной строкой,

Function Story_Test() Dim File As String Dim Tag As String Dim ReplacementString As String Dim a As Integer Dim WordObj As Object Dim WordDoc As Object Dim StoryRange As Word.Range Dim Junk As Long Dim BaseFile As String 'Normally, these lines would be strings which get passed in File = "Z:\File.docx" Tag = "{{Prepared_By}}" ReplacementString = "Joe Somebody" 'Review currently open documents, and Set WordDoc to the correct one 'Don't worry, I already have error handling in place for the more complex code Set WordObj = GetObject(, "Word.Application") BaseFile = Basename(File) For a = 1 To WordObj.Documents.Count If WordObj.Documents(a).Name = BaseFile Then Set WordDoc = WordObj.Documents(a) Exit For End If Next a 'This is a fix provided to fix the skipped blank Header/Footer problem Junk = WordDoc.Sections(1).Headers(1).Range.StoryType 'Okay, this is the line where we can see the error. 'When this code is run from Excel VBA, problem. From Word VBA, no problem. 'Anyone known why this is??? '*********************************************************************** For Each StoryRange In WordObj.Documents(a).StoryRanges '*********************************************************************** Do 'All you need to know about the following function call is ' that I have a function that works to replace strings. 'It works fine provided it has valid strings and a valid StoryRange. Call SearchAndReplaceInStory_ForVariants(StoryRange, Tag, _ ReplacementString, PreAdditive, FinalAdditive) Set StoryRange = StoryRange.NextStoryRange Loop Until StoryRange Is Nothing Next StoryRange Set WordObj = Nothing Set WordDoc = Nothing End Function источник поделиться

qaru.site

vba - Скопировать форматированный текст из Excel в Word

У меня есть лист excel с двумя столбцами строк. Я отслеживаю изменения этих двух столбцов, используя ms-word, и копирую результат обратно в третий столбец. Затем я копирую третий столбец в новый документ.

Формирование в Excel в Cell C3 - это то, что я хотел бы передать на слово.

Это то, что я получаю сейчас. Обратите внимание на полный прорыв.

Почему он работает дважды, но не в третьем случае?

Я полагаю, что корень проблемы заключается в том, что я удаляю CR/Linefeed в слове, чтобы преуспеть шаг и уничтожить границу зачеркнутого формата. Моя цель - получить каждую строку в одном слове-абзаце. Если я не удаляю CR/Linefeed, я получаю четыре абзаца. Предыстория: в конечном приложении строки будут абзацами текста.

Исходный код excel-vba-macro (Excel 2010): Техническое примечание. Возможно, вам потребуется активировать объекты ms-word в excel-vba. (Библиотека объектов Microsoft Word 14.0) Макрос предполагает, что строки в диапазоне (A1: B3): например

a string a string, too a string a new string a string there is no try

Результаты будут помещены в диапазон (C1: C3).

Option Explicit Dim numberOfBlocks As Long Sub main() Dim i As Long Dim tSht As Worksheet Dim wordapp As Word.Application Dim wdoc As Word.Document Set tSht = ThisWorkbook.ActiveSheet numberOfBlocks = 3 Application.ScreenUpdating = False Set wordapp = CreateObject("Word.Application") For i = 1 To numberOfBlocks Call trackChanges(i, wordapp, tSht) Next i Set wdoc = wordapp.Documents.Add Call copyChanges(tSht, wdoc) End Sub Sub trackChanges(i As Long, wordapp As Word.Application, tSht As Worksheet) Dim diffDoc As Word.Document Dim textString() As Variant Dim j As Long ReDim doc(2) ReDim textString(2) Set textString(1) = tSht.Range("A" & i) Set textString(2) = tSht.Range("B" & i) For j = 1 To 2 With wordapp Set doc(j) = .Documents.Add textString(j).Copy doc(j).Paragraphs(1).Range.PasteSpecial End With Next j wordapp.CompareDocuments OriginalDocument:=doc(1), RevisedDocument:=doc(2), _ Destination:=wdCompareDestinationNew, Granularity:=wdGranularityCharLevel For j = 1 To 2 doc(j).Close SaveChanges:=False Next j Set diffDoc = wordapp.ActiveDocument wordapp.Visible = True 'if the answer has two paragraphs, get both in one paragraph With diffDoc.Content.Find .Forward = True .Wrap = wdFindStop .Format = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = True .Text = vbCrLf .Replacement.Text = " " .Execute Replace:=wdReplaceAll End With diffDoc.Range.Copy tSht.Range("C" & i).Select tSht.PasteSpecial Format:="HTML" With tSht.Range("C" & i) .WrapText = True .Font.Name = textString(2).Font.Name .Font.Bold = textString(2).Font.Bold .Font.Size = textString(2).Font.Size .Rows.AutoFit .Interior.Color = textString(2).Interior.Color End With diffDoc.Close SaveChanges:=False Application.CutCopyMode = False Set diffDoc = Nothing End Sub Sub copyChanges(tSht As Worksheet, wdoc As Word.Document) tSht.Range("C1:C" & numberOfBlocks).Copy wdoc.Range(wdoc.Range.End - 1, wdoc.Range.End).PasteSpecial Placement:=wdInLine, DataType:=wdPasteHTML wdoc.Tables(1).ConvertToText Separator:=wdSeparateByParagraphs End Sub

qaru.site

vba - Как скопировать форматированный текст из Excel в Word, используя vba быстрее

Проблема: я хочу скопировать форматированный текст из excel в word, используя excelvba-script. Сценарий копирует информацию послушно, но слишком медленно.

Можете ли вы дать мне подсказку, как ускорить процесс, пожалуйста?

Мои подходы до сих пор документированы в этом фиктивном документе. Сценарий предполагает, что ячейки C1: C100 содержат сформованный текст.

Главная Информация. Я пишу excelvba makro, который копирует текстовые блоки в текстовый документ. Для каждого текстового блока есть две версии. Макрос отслеживает изменения стиля слова (удаление: текст красным, зачеркивание и т.д.) И копирует результат в третий столб. Эта часть работает как шарм. Затем третий столбец копируется в текстовый документ. Эта часть работает на моей машине (i7-3770, ssd, 8 Gb Ram), но не на машине с бедными душами, которая должна работать со сценарием (amd Athlon 220), размер производства составляет 700-1000 текстовых блоков, с 100-1000 символами каждый.

option explicit Sub start() Dim wapp As Word.Application Dim wdoc As Word.Document Set wapp = CreateObject("word.application") wapp.Visible = False Application.ScreenUpdating = False Set wdoc = wapp.Documents.Add 'Call copyFormattedCellsToWord(wdoc) 'Call copyFormattedCellsToWordForEach(wdoc) 'Call copyWholeRange(wdoc) Call concatenateEverythingInAStringAndCopy(wdoc) wapp.Visible = True End Sub 'desired output-result (every cell in a new line and formatting preserved) meets the specs, but to slow Sub copyFormattedCellsToWord(wdoc As Word.Document) Dim counter As Long Worksheets(1).Select For counter = 1 To 100 Worksheets(1).Range("C" & counter).Copy wdoc.Range(wdoc.Range.End - 1, wdoc.Range.End).PasteSpecial Placement:=wdInLine, DataType:=wdPasteHTML Next counter End Sub 'desired output-result, a tiny bit faster (might be only superstition), but still not fast enough Sub copyFormattedCellsToWordForEach(wdoc As Word.Document) Dim cell As Range Worksheets(1).Select For Each cell In Worksheets(1).Range("C1:C100") cell.Copy wdoc.Range(wdoc.Range.End - 1, wdoc.Range.End).PasteSpecial Placement:=wdInLine, DataType:=wdPasteHTML Next cell End Sub 'fast enough, but introduces a table in the word document and therefore 'doesn't meet the specs Sub copyWholeRange(wdoc As Word.Document) Worksheets(1).Range("C1:C100").Copy wdoc.Range(wdoc.Range.End - 1, wdoc.Range.End).PasteSpecial Placement:=wdInLine, DataType:=wdPasteHTML End Sub 'fast enought, looses the formatting Sub concatenateEverythingInAStringAndCopy(wdoc As Word.Document) Dim wastebin As String Dim cell As Range wastebin = "" Worksheets(1).Select For Each cell In Worksheets(1).Range("C1:C100") wastebin = wastebin & cell.Value Next cell Range("D1") = wastebin Range("D1").Copy wdoc.Range(wdoc.Range.End - 1, wdoc.Range.End).PasteSpecial Placement:=wdInLine, DataType:=wdPasteHTML End Sub задан Ratilius 20 окт. '15 в 8:37 источник поделиться

qaru.site