将单元格数据从excel复制到单词VBA

我有数百个单元格需要将excel中的粘贴复制到单词表中。 我已经想出了如何在excel VBA>单词中插入数据(即“单词表单元格= 1”),并且工作正常,但是我的问题是将单个Excel单元格复制到单个单词表单元格中。

我的代码目前是:

'Do the For Loops here, WIP For Each Cell In ActiveSheet.UsedRange.Cells 'do some stuff For Each oRow In wdDoc.Tables(1).Rows For Each oCell In oRow.Cells ' Set sCellText equal to text of the cell. ' Note: This section can be modified to suit ' your programming purposes. If ((oCell.Column.Index Mod 2) = 0) Then Else 'counter = counter + 1 'oCell.Range.Text = ThisWorkbook.Sheets(1).Cells(1, 2).Value oCell.Range.Text = Cell End If Next oCell Next oRow Next 

它目前所做的是将第一个excel单元格复制到每个单词表单元格。 当它击中第二个Excel单元格时,它将覆盖每个其他单词表格单元格。

下面的图片是目前正在发生的事情:

图像不工作

我想要发生什么:(先读取excel单元格,复制粘贴到单词表格单元格 – 读取第二个excel单元格,复制粘贴到第二个单词表格单元格。

DesiredOutput

谢谢,

亚历克斯。

这个代码应该做的伎俩。 无论如何,它在我的testing中工作:

 Dim firstRow As Integer Dim firstColumn As Integer Dim numRows As Integer Dim numColumns As Integer Dim uRange As Range Set uRange = ActiveSheet.UsedRange firstRow = uRange.Row firstColumn = uRange.Column numRows = uRange.Rows.Count numColumns = uRange.Columns.Count Dim rowNumber As Integer Dim columnNumber As Integer Dim tableRow As Integer Dim tableColumn As Integer tableRow = 1 tableColumn = 1 Dim tableRows As Integer Dim tableColumns As Integer tableRows = doc.Tables(1).Rows.Count tableColumns = doc.Tables(1).Columns.Count For rowNumber = firstRow To firstRow + numRows - 1 For columnNumber = firstColumn To firstColumn + numColumns - 1 doc.Tables(1).Cell(tableRow, tableColumn).Range.Text = Cells(rowNumber, columnNumber).Value tableColumn = tableColumn + 2 If tableColumn > tableColumns Then tableColumn = 1 tableRow = tableRow + 1 End If If tableRow > tableRows Then Exit Sub End If Next Next 

我故意select不同大小的input和输出范围,以便它能够演示这个function。

Excel工作表(input):

在这里输入图像说明

Word页面(输出):

在这里输入图像说明

使用这种方法,您可以控制是否要读取行,然后是列,然后是列,然后是行。

请注意UsedRange函数并不总是返回正确的结果。 有些情况下,它会给你比你想要的范围更大的范围。