英文:
Copy a Non-contiguous Range From Excel to Word
问题
以下是翻译好的部分:
我有以下的代码,我只想要给定的范围,但每次我使用我的宏时,范围C28到H28也会被复制并粘贴到Word文件中。
这是选择范围的代码:
Dim rangeSP As Range
Set rangeSP = Sheets("Details").Range("C27:H27")
Dim rangeSP2 As Range
Set rangeSP2 = Sheets("Details").Range("C29:H30")
Dim rangeSpecification As Range
Set rangeSpecification = Union(rangeSP, rangeSP2)
这是被复制和粘贴到Word文件的部分:
wordDoc.Application.Selection.Find.Execute "Where it will be put"
wordApp.Selection.MoveRight Unit:=wdCharacter, Count:=1
wordApp.Selection.TypeParagraph
rangeSpecification.Copy
wordApp.Selection.PasteExcelTable False, True, False
我想要从Excel中复制表格到Word文件中。因此,我尝试使用联合范围,因为在数据集之间有不需要的行。但是当我使用我的宏时,不需要的行也被复制并粘贴到Word文件中。
英文:
I have the following Code and I only want the Ranges that are given, but every time I use my Macro, the range C28 to H28 is also copied and pasted into the word-file.
This the Code that selects the ranges:
Dim rangeSP As Range
Set rangeSP = Sheets("Details").Range("C27:H27")
Dim rangeSP2 As Range
Set rangeSP2 = Sheets("Details").Range("C29:H30")
Dim rangeSpecification As Range
Set rangeSpecification = Union(rangeSP, rangeSP2)
This where it gets copied and pasted into the word file:
wordDoc.Application.Selection.Find.Execute "Where it will be put"
wordApp.Selection.MoveRight Unit:=wdCharacter, Count:=1
wordApp.Selection.TypeParagraph
rangeSpecification.Copy
wordApp.Selection.PasteExcelTable False, True, False
I want to copy Tables from an Excel into a Word-File. So, I tried it with Union Ranges, because there are Rows in-between the Data Sets that I don't need. But when I use my Macro, the unwanted rows are also copied and pasted into the word file.
答案1
得分: 1
复制和粘贴多个范围(非连续的)可能会有些棘手。将这些范围粘贴到Excel工作表中会如预期一样。但是,跨应用程序(例如Word或PowerPoint)粘贴将包括被跳过的单元格。
对于您的情况,您有两个选项:
- 将多个Excel范围粘贴到未使用的工作表或新的Excel工作表中。然后复制合并的范围并粘贴到Word中。
rangeSpecification.Copy ActiveSheet.Range("AA1")
Application.CutCopyMode = False
Set rngData = ActiveSheet.Range("AA1").CurrentRegion
rngData.Copy
wordApp.Selection.PasteExcelTable False, True, False
rngData.Clear
- 在从Excel粘贴后,使用Word中的VBA代码删除不需要的中间行。(假设Word文档中只有一个表格。)
ThisDocument.Tables(1).Rows(2).Delete
英文:
Copying and pasting multiple ranges (non-contiguous) can be tricky. Pasting such ranges within Excel sheets will be as expected. However, pasting across applications (Word or PowerPoint) will include the skipped cells.
For your situation, you have two options:
- Paste the multiple Excel ranges onto unused range on ative sheet or a new Excel sheet. Then copy the consolidated range and paste into Word.
rangeSpecification.Copy ActiveSheet.Range("AA1")
Application.CutCopyMode = False
Set rngData = ActiveSheet.Range("AA1").CurrentRegion
rngData.Copy
wordApp.Selection.PasteExcelTable False, True, False
rngData.Clear
- Using VBA code in Word to delete the unwanted in-between rows after pasting from Excel. (Assuming there is only one table in Word document.)
ThisDocument.Tables(1).Rows(2).Delete
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论