Vba 导入excel数据
我有一个excel文件,A-ZZ列中有数据,我需要将E、F、G、I列导入word文档中的表中。我不想使用邮件合并,因为我希望数据都在word中的同一个表中。有人能给我指点吗?我已经寻找了一段时间,但测试代码没有成功Vba 导入excel数据,vba,ms-word,Vba,Ms Word,我有一个excel文件,A-ZZ列中有数据,我需要将E、F、G、I列导入word文档中的表中。我不想使用邮件合并,因为我希望数据都在word中的同一个表中。有人能给我指点吗?我已经寻找了一段时间,但测试代码没有成功 Sub Macro1() Dim rowCount2 As Long, shtSrc As Worksheet Dim shtDest As Worksheet Dim rng2 As Range Set shtSrc = Sheets("
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
Sub宏1()
Dim ROWCUNT2为长,shtSrc为工作表
Dim shtDest作为工作表
变暗rng2 As范围
设置shtSrc=图纸(“路线图”)
Set shtDest=ActiveDocument.Range(1)
rowCount2=shtSrc.Cells(Rows.Count,“A”).End(xlUp).Row
设置rng2=shtSrc.Range(“A1:A”和rowCount2)
currentRow=2
对于rng2中的每个单元格2。单元格
如果cell2.Value为“”,则
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=”“然后
如果结束
下一单元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
)-否则将有一堆“未完成”和隐藏的Excel实例。请尝试以下代码:
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
)-否则将有一堆“未完成”和隐藏的Excel实例。请尝试以下代码:
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
)-否则将有一堆“未完成”和隐藏的Excel实例。请尝试以下代码:
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
)-否则您将有一堆“未完成”和隐藏的Excel实例。您的图片链接显示为空白。请相应修改。同时向我们展示您的尝试。@L42我附加了我一直尝试使用的代码。此外,我一直附加图片,但由于某些原因它不会显示。这是我word文档中表格的图片。我正在尝试将单元格B、C、G、H、J从excel文件移动到word表格中的相应字段。您的图片链接显示为空白。请相应修改。同时向我们展示您的尝试。@L42我附加了我一直尝试使用的代码。此外,我一直附加图片,但由于某些原因它不会显示。这是我word文档中表格的图片。我正在尝试将单元格B、C、G、H、J从excel文件移动到word表格中的相应字段。您的图片链接显示为空白。请相应修改。同时向我们展示您的尝试。@L42我附加了我一直尝试使用的代码。此外,我一直附加图片,但由于某些原因它不会显示。这是我word文档中表格的图片。我正在尝试将单元格B、C、G、H、J从excel文件移动到word表格中的相应字段。您的图片链接显示为空白。请相应修改。同时向我们展示您的尝试。@L42我附加了我一直尝试使用的代码。此外,我一直附加图片,但由于某些原因它不会显示。这是我word文档中表格的图片。我正在尝试将单元格B、C、G、H、J从excel文件移动到word表格中的相应字段。谢谢@Marcin Nowicki-我收到错误消息“编译错误:运行此操作时未定义用户定义的类型。将MyExcel设置为Excel.ApplicationHi是一个常见问题。只需在工具中添加对Microsoft Excel的引用,即“引用”。欢呼声纠正了那个错误。现在它给我运行时错误,自动错误接口未知。我将MyWB.Sheets更新为“路线图”,即我的数据所在的选项卡的名称。ActiveDocument.Range(1).Tables(1).Range.Rows(1).Cells(i).Range=MyWB.Sheets(“路线图”).Cells(3,70-i)我的表格有6列,循环从第1列转到第6列。可能您的表没有足够的空间容纳数据。请理解。当我在word文档中添加另一列时,宏将运行。它只是无法获取任何数据。细胞(3,70-i)在做什么?我的excel文件中的数据从B1、C1开始