用户登录
用户注册

分享至

vba复制粘贴word表格

  • 作者: 太阳当空照花儿对我笑4630757
  • 来源: 51数据库
  • 2020-06-05

1. VBA 用excel模块复制word的表格内容

试试下面的代码:Sub 宏1() Dim wordapp As Object Dim mydoc Dim mypath$, myname$ Dim wdRng As Object Dim pos1%, pos2% '定义找到的字段的首位位置 Application.DisplayAlerts = False Set wordapp = CreateObject("word.application") mypath = ThisWorkbook.Path & "" myname = Dir(mypath & "*.doc*") Set mydoc = wordapp.Documents.Open(mypath & myname) Set wdRng = mydoc.Range wdRng.Find.Execute ("(一)") pos1 = wdRng.Start Set wdRng = mydoc.Range wdRng.Find.Execute ("五、") pos2 = wdRng.Start mydoc.Range(pos1, pos2).Copy '选中找到的两个字段中间的内容 mydoc.Close False wordapp.Quit Worksheets("Sheet2").Select Range("A1").Select ActiveSheet.Paste Application.ScreenUpdating = True Application.DisplayAlerts = TrueEnd Sub。

2. 用VBA把Excel中的表粘贴到Word

忘记说了,要加入word的Object library才行的。

方法:

在excel的vb编辑器菜单中,选“工具”---“引用”---在那列表中往下找“Microsoft Word 9.0 Object Library”,把它前面的框勾上,确定。

这样执行就没错了。

Sub Macro1()

Dim appWD As Word.Application, doc As Object

Range("A1:C3").Select

Selection.Copy

Set appWD = CreateObject("Word.Application")

appWD.Visible = True

Set appWD = GetObject(, "Word.Application")

Set doc = GetObject("D:\doc1.doc")

appWD.Visible = True

With appWD.Selection.Find

.Text = "指定位置"

.Wrap = wdFindContinue

End With

appWD.Selection.Find.Execute

appWD.Selection.MoveRight Unit:=wdCharacter, Count:=1

appWD.Selection.TypeParagraph

appWD.Selection.MoveLeft Unit:=wdCharacter, Count:=1

appWD.Selection.PasteExcelTable False, False, False

appWD.Quit (wdSaveChanges)

End Sub

3. 如何利用excel vba提取word中表格的部分内容,复制粘贴到excel

试试下面的代码:e69da5e6ba907a686964616f31333363393738

Sub 宏1()

Dim wordapp As Object

Dim mydoc

Dim mypath$, myname$

Dim wdRng As Object

Dim pos1%, pos2% '定义找到的字段的首位位置

Application.DisplayAlerts = False

Set wordapp = CreateObject("word.application")

mypath = ThisWorkbook.Path & ""

myname = Dir(mypath & "*.doc*")

Set mydoc = wordapp.Documents.Open(mypath & myname)

Set wdRng = mydoc.Range

wdRng.Find.Execute ("(一)")

pos1 = wdRng.Start

Set wdRng = mydoc.Range

wdRng.Find.Execute ("五、")

pos2 = wdRng.Start

mydoc.Range(pos1, pos2).Copy '选中找到的两个字段中间的内容

mydoc.Close False

wordapp.Quit

Worksheets("Sheet2").Select

Range("A1").Select

ActiveSheet.Paste

Application.ScreenUpdating = True

Application.DisplayAlerts = True

End Sub

4. VBA将一个word表格中的内容复制到另外一个word的表格中

'打开后焦点发生了转移,activedocument已经指向刚打开的文件了

'改为

Sub Macro1()

Dim myDoc

'On Error Resume Next

With ActiveDocument.Tables(1).Cell(Row:=1, Column:=3).Range

Set myDoc = Word.Application.Documents.Open("E:\1.docx")

.Delete

.InsertAfter Text:=myDoc.Tables(2).Cell(Row:=1, Column:=2)

End With

End Sub

'(

InsertAfter Text:=myDoc.Tables(2).Cell(Row:=1, Column:=2)这行代码中,你确定表2存在吗?我测试时只建一个表,所以改为Tables(1).

)

'也可以这样控制焦点

Sub Macro1()

Dim myDoc

'On Error Resume Next

Set myDoc = Word.Application.Documents.Open("E:\1.docx", , , , , , , , , , , vbHide)

With ActiveDocument.Tables(1).Cell(Row:=1, Column:=3).Range

.Delete

.InsertAfter Text:=myDoc.Tables(2).Cell(Row:=1, Column:=2)

End With

End Sub

'至于为什么多出一个换行符我还没想明白

5. vba如何打开并复制别的表格

打开别的表格可以用Workbooks.Open方法打开一个Excel工作簿,这个函数的具体用法和参数如下:Workbooks.Open(FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMru, Local, CorruptLoad)其中FileName是必选的参数,表示要打开的工作簿名,如果没有指定路径,则代表当前路径。

另外14个是可选参数,除了密码参数,其他的一般很少用。具体的含义可以参看VBA的帮助。

实例:Workbooks.Open "F:\test.xls" '表示打开F盘根目录名称为test.xls的文件可以打开F盘的test.xls文件。复制别的表格可以用Copy方法。

选中你要复制的工作表,然后复制工作表中的所有内容,然后粘贴到你要复制到的工作薄。假设你要复制的是C盘用户文档下的123.xls文件中的Sheet5工作表,需要复制到你已经打开的第一个工作薄Book1,具体的实现代码为: Sub Macro() '下面一行代码表示打开C盘用户文档文件夹中名称为123.xls的文件 Workbooks.Open Filename:= _ "C:\Documents and Settings\Administrator\My Documents\123.xls" Sheets("Sheet5").Select '选中你要复制的工作表Sheet5 ' Cells.Select '选中Sheet5中所有的单元格 Selection.Copy '复制选中的内容 Windows("Book1").Activate '把工作薄Book1置为当前工作薄 ActiveSheet.Paste '把复制的内筒粘贴的当前工作薄Book1 End Sub。

6. vba 将 word 字符复制到excel 或txt

你的代码可以用的。

Sub test()

Dim i

Dim Wrd As Range

i = Selection.Font.ColorIndex

For Each Wrd In ActiveDocument.Words

If Wrd.Font.ColorIndex i Then Wrd.Copy

SaveAsTxtFile '调用SaveAsTxtFile

Next Wrd

End Sub

Sub SaveAsTxtFile()

Const 指定文件名 = "autosave01.txt"

Documents.Add Template:="Normal", NewTemplate:=False, DocumentType:=0

Selection.PasteSpecial Link:=False, DataType:=wdPasteText

ActiveDocument.SaveAs2 FileName:=指定文件名, FileFormat:=wdFormatText, Encoding:=936

ActiveDocument.Close

End Sub

7. excel vba复制行,复制它的内容和格式

将复制这行拆分,复制后选择性粘贴:

Rows(x & ":" & n).EntireRow.Copy

Range("A1").PasteSpecial xlPasteValuesAndNumberFormats

如果是复制的单元格格式,再加上下面一句

Range("A1").PasteSpecial xlPasteFormats

另外,Rows本身就是整行引用,EntireRow在这里就是重复的,可取消,直接改为:

Rows(x & ":" & n).Copy

8. vba如何把word表格内容填到excel里

如果说填写,这个比较复杂,而且很难实现,因为word的VBA都是跟跟键盘操作,和界面操作有关的。

所以,如果可能,可以考虑用VBA来复制表格,然后粘贴到EXCEL中,对于比较简单的表格,内容是可以完全匹配的。

首先,你要知道如何用键盘来选择整个表格,然后复制,把这些操作录制下来,然后复制代码。

如果你是要从EXCEL 的VBA 入手,那么你需要在VBA引用中添加WORD Libary 11.0 如果是从WORD的VBA入手,那么就要添加EXCEL LIBARY 11.0 (OFFICE 2007 是 12.0)

然后就是需要知道EXCEL中粘贴的代码,如果我记得不错的话,是:cells(1,1).paste

这个,你也可以通过录制来得到。

如果你需要知道具体的操作方案,你当然也应该吧分数提高。

9. VBA将一个word表格中的内容复制到另外一个word的表格中

'打开后焦点发生了转移,activedocument已经指向刚打开的文件了

'改为

Sub Macro1()

Dim myDoc

'On Error Resume Next

With ActiveDocument.Tables(1).Cell(Row:=1, Column:=3).Range

Set myDoc = Word.Application.Documents.Open("E:\1.docx")

.Delete

.InsertAfter Text:=myDoc.Tables(2).Cell(Row:=1, Column:=2)

End With

End Sub

'(

InsertAfter Text:=myDoc.Tables(2).Cell(Row:=1, Column:=2)这行代码中,你确定表2存在吗?我测试时只建一个表,所以改为Tables(1).

)

'也可以这样控制焦点

Sub Macro1()

Dim myDoc

'On Error Resume Next

Set myDoc = Word.Application.Documents.Open("E:\1.docx", , , , , , , , , , , vbHide)

With ActiveDocument.Tables(1).Cell(Row:=1, Column:=3).Range

.Delete

.InsertAfter Text:=myDoc.Tables(2).Cell(Row:=1, Column:=2)

End With

End Sub

'至于为什么多出一个换行符我还没想明白

转载请注明出处51数据库 » vba复制粘贴word表格

软件
前端设计
程序设计
Java相关