|
本帖最后由 ywzx703 于 2014-9-9 12:56 编辑
在使用- Sub 导出表格(control As IRibbonControl)
- Dim WordApp As Object, DOC, mTable, Fn$, Str$
- On Error Resume Next '设置容错代码
- arr = Application.GetOpenFilename("所有文件 (*.doc;*.docx;),*.doc;*.docx,Word97-2003 文件 (*.doc),*.doc,Word2007 文件 (*.Docx),*.Docx", , "选择文件", , False)
-
- Set WordApp = CreateObject("word.application") '创建word程序项目(用于操作word文档)
- WordApp.Visible = True '设定word程序项目可见
- Set DOC = WordApp.Documents.Open(Trim(arr))
- K = 0
- T = DOC.Tables.Count
- For i = 1 To T '循环文档中的各个表格
- WordApp.Activate '激活word程序,使之窗体前置
- DOC.Tables(i).Select
- 'Selection.InsertAfter Text:=""
- DOC.Tables(i).Delete '删除表格
-
- With Windows(1) '激活excel程序窗体,使之前置
- .Activate
- With ActiveWorkbook.ActiveSheet '选中当前使用区A列下面的第一个单元格,并粘贴复制的word中的表格数据
- Set rng = Range(.Cells(i, 1)) '选择一个表格范围赋值给变量
- With WordApp '应用类操作
- With .Selection '选择对象操作
- rng.Copy '复制Range
- .PasteExcelTable True, False, False '粘贴到Word中
- End With
- End With
- End With
- End With
- If i > 5 Then Exit Sub
- Next i
- 'DOC.Close False '关闭word文档
- Application.ScreenUpdating = True
- 'WordApp.Quit 'word程序项目关闭
- 'Set DOC = Nothing '清空对应项目变量
- Set WordApp = Nothing
- End Sub
复制代码 向WORD中选择性黏贴表格数据,发现黏贴前后行数有变化。
当并不是VBA独有的,即使是手工黏贴,只要是带上链接后,就会自动在表格上方加一行,不知有办法在VBA操作时去掉否?
|
|