如何建立VBA宏来复制和粘贴一个范围,而不是单一单元格到MS Word文档



我在下面有一个宏,它基本上采用excel单元格并粘贴到MS单词表中。现在,我有4个excel单元格,每个";观察";必须将其复制并粘贴到具有5列和两行的MS单词表中。粘贴单元格(A、E、F、I(时,它们需要分别进入表格的第1、2、3和5列。

有人知道是否有办法将下面的代码压缩到一个简单的范围内吗?与其告诉宏复制这个,不如粘贴那个,复制这个,粘贴那个。。等等,我想告诉它复制这个范围,粘贴它,然后移动到下一个完整的观察表。


Dim tb13 As Excel.Range
Set tb13 = ThisWorkbook.Worksheets("Observation Listing").Range("A10")
tb13.Copy
myDoc.Tables(4).Cell(Row:=2, Column:=1).Range.PasteExcelTable _
LinkedToExcel:=True, _
WordFormatting:=False, _
RTF:=True

'Obs Summary
Dim tb14 As Excel.Range
Set tb14 = ThisWorkbook.Worksheets("Observation Listing").Range("E11")
tb14.Copy
myDoc.Tables(4).Cell(Row:=2, Column:=2).Range.PasteExcelTable _
LinkedToExcel:=True, _
WordFormatting:=False, _
RTF:=True

'Pot. Bus. Impact
Dim tb15 As Excel.Range
Set tb15 = ThisWorkbook.Worksheets("Observation Listing").Range("F11")
tb15.Copy
myDoc.Tables(4).Cell(Row:=2, Column:=3).Range.PasteExcelTable _
LinkedToExcel:=True, _
WordFormatting:=False, _
RTF:=True

'Action Plan
Dim tb16 As Excel.Range
Set tb16 = ThisWorkbook.Worksheets("Observation Listing").Range("I11")
tb16.Copy
myDoc.Tables(4).Cell(Row:=2, Column:=5).Range.PasteExcelTable _
LinkedToExcel:=True, _
WordFormatting:=False, _
RTF:=True

您可以使用这个:通过'Obs Summary 进行示例

myDoc.Tables(4).Cell(2, 2).Range.text = _ 
ThisWorkbook.Worksheets("Observation Listing").Range("E11").value

您可以使用此循环在范围内循环,并将所有单元格值写入表中:

Dim rng As Range
Dim v As Variant
Dim col As Long, r As Long
Set rng = ThisWorkbook.Worksheets("ObservationListing").Range("A11:C11")
col = 1 'start with this column
r = 2 ' row
For Each v In rng.Cells
myDoc.Tables(4).Cell(r, col).Range.Text = v.Value
col = col + 1
Next v

最新更新