用于导入Excel数据的单词中的VBA代码

时间:2015-03-26 00:55:45

标签: vba word-vba

enter image description here我有一个包含A - ZZ列数据的Excel文件,我需要将E,F,G,I列导入word文档中的表格。我不想使用邮件合并,因为我希望数据都在单词内的同一个表中。任何人都可以给我任何指示吗?我一直在寻找一段时间并且测试代码失败了。

Word Doc

Sub Macro1()

Dim rowCount2 As Long,shtSrc As Worksheet Dim shtDest As Worksheet Dim rng2 As Range

Set shtSrc = Sheets("Roadmap")
Set shtDest = ActiveDocument.Range(1)

rowCount2 = shtSrc.Cells(Rows.Count, "A").End(xlUp).Row

Set rng2 = shtSrc.Range("A1:A" & rowCount2)


currentRow = 2

For Each cell2 In rng2.Cells
    If cell2.Value <> "" Then
        shtDest.Range("B" & currentRow).Value2 = cell2.Value2
        shtDest.Range("C" & currentRow).Value2 = cell2.Offset(0, 1).Value2
        shtDest.Range("G" & currentRow).Value2 = cell2.Offset(0, 2).Value2
        shtDest.Range("H" & currentRow).Value2 = cell2.Offset(0, 3).Value2
        shtDest.Range("J" & currentRow).Value2 = cell2.Offset(0, 4).Value2
        currentRow = currentRow + 1

    ElseIf cell2.Value = "" Then

    End If
    Next cell2

End Sub

1 个答案:

答案 0 :(得分:2)

试试此代码

Sub test()
Debug.Print ActiveDocument.Range(1).Tables(1).Range.Rows(1).Cells(1).Range
Dim MyExcel As Excel.Application
Dim MyWB As Excel.Workbook
Set MyExcel = New Excel.Application
Set MyWB = MyExcel.Workbooks.Open("C:\Users\marci_000\Documents\Projekty\Almanach\NOTORIA_XLS\AGORA.XLS")

For i = 1 To 6
    ActiveDocument.Range(1).Tables(1).Range.Rows(1).Cells(i).Range = MyWB.Sheets("ConsQRT_Reports").Cells(3, 70 - i)
Next i

MyWB.Close False
Set MyExcel = Nothing
Set MyWB = Nothing

End Sub

我假设在第一段(ActiveDocument.Range(1))中有一个表(ActiveDocument.Range(1).Tables(1))。第一个Debug.print向第一个单元格(第一行,第一列)的立即窗口内容发送。 然后我打开一个Excel文件,并为单元格(从excel)69到64将第3行的内容写入Word表格中的单元格。

完成工作后关闭excel中的文件并进行清理(= Nothing) - 否则你会有一堆未完成的&#34;和隐藏的Excel实例。

干杯

  • 的Marcin