Word中利用VBA导入样式

Word中利用VBA导入样式

由于经常编辑文本资料,需要导入自己定义的样式,比较麻烦。我利用宏录制了一些VBA程序。下面是一个示例。

Sub 导入样式表集()
'
' 导入样式表集 宏
'
'
    Application.OrganizerCopy Source:="E:\样式表集合模板.doc", _
        Destination:="E:\待编辑文档.doc", Name:="诗词标题样式", _
         Object:=wdOrganizerObjectStyles
    Application.OrganizerCopy Source:="E:\样式表集合模板.doc", _
        Destination:="E:\待编辑文档.doc", Name:="诗词样式", _
        Object:=wdOrganizerObjectStyles
    Application.OrganizerCopy Source:="E:\样式表集合模板.doc", _
        Destination:="E:\待编辑文档.doc", Name:="诗词大义样式", _
        Object:=wdOrganizerObjectStyles
    Application.OrganizerCopy Source:="E:\样式表集合模板.doc", _
        Destination:="E:\待编辑文档.doc", Name:="总结样式", _
        Object:=wdOrganizerObjectStyles
End Sub

但是问题来了,如果是新的编辑文档到来,需要导入,这个代码运行没有效果。仔细检查原因。是录制时候,只是针对具体的文档。要通用化,必须修改Destination:="E:\待编辑文档.doc"Destination:=ActiveDocument,如下。

Sub 导入样式表集()
'
' 导入样式表集 宏
'
'
    Application.OrganizerCopy Source:="E:\样式表集合模板.doc", _
        Destination:=ActiveDocument, Name:="诗词标题样式", _
         Object:=wdOrganizerObjectStyles
    Application.OrganizerCopy Source:="E:\样式表集合模板.doc", _
        Destination:=ActiveDocument, Name:="诗词样式", _
        Object:=wdOrganizerObjectStyles
    Application.OrganizerCopy Source:="E:\样式表集合模板.doc", _
        Destination:=ActiveDocument, Name:="诗词大义样式", _
        Object:=wdOrganizerObjectStyles
    Application.OrganizerCopy Source:="E:\样式表集合模板.doc", _
        Destination:=ActiveDocument, Name:="总结样式", _
        Object:=wdOrganizerObjectStyles
End Sub

大功告成!

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用VBA编写代码将Word表格导入到Excel。具体步骤如下: 1. 打开Word文档,选择要导入的表格。 2. 在Word按下Alt+F11打开VBA编辑器。 3. 在VBA编辑器插入一个新的模块。 4. 在新的模块编写代码,使用Word对象模型的Table对象和Excel对象模型的Worksheet对象来实现表格的导入。 5. 运行代码,将表格导入到Excel。 需要注意的是,导入表格时需要考虑表格的格式和数据类型,以确保导入的数据准确无误。 ### 回答2: 在VBAWord表格导入到Excel可以通过使用Microsoft Word和Microsoft Excel对象库来实现。 首先,需要打开Word文档并选择需要导入的表格。通过以下代码可以打开Word文档并选择表格: ``` Sub ImportWordTable() Dim WordApp As Object Dim WordDoc As Object Dim WordTable As Object Set WordApp = CreateObject("Word.Application") Set WordDoc = WordApp.Documents.Open("C:\Users\example.docx") Set WordTable = WordDoc.Tables(1) '此时选定了第一个表格 '以下可以指定具体的某个单元格的值 'WordTable.Cell(1, 1).Range.Text End Sub ``` 接下来,需要将选择的表格的数据逐行逐列地提取出来,并在Excel创建一个新的工作簿和工作表来放置这些数据。通过以下代码可以在Excel创建新工作簿和工作表: ``` Sub ImportWordTable() Dim WordApp As Object Dim WordDoc As Object Dim WordTable As Object Dim ExcelApp As Object Dim ExcelBook As Object Dim ExcelSheet As Object Dim i As Integer Dim j As Integer Set WordApp = CreateObject("Word.Application") Set WordDoc = WordApp.Documents.Open("C:\Users\example.docx") Set WordTable = WordDoc.Tables(1) '此时选定了第一个表格 Set ExcelApp = CreateObject("Excel.Application") Set ExcelBook = ExcelApp.Workbooks.Add() Set ExcelSheet = ExcelBook.Worksheets(1) End Sub ``` 然后,需要使用循环来按行和列的顺序将表格的数据提取到Excel工作表。可以使用以下代码来实现: ``` Sub ImportWordTable() Dim WordApp As Object Dim WordDoc As Object Dim WordTable As Object Dim ExcelApp As Object Dim ExcelBook As Object Dim ExcelSheet As Object Dim i As Integer Dim j As Integer Set WordApp = CreateObject("Word.Application") Set WordDoc = WordApp.Documents.Open("C:\Users\example.docx") Set WordTable = WordDoc.Tables(1) '此时选定了第一个表格 Set ExcelApp = CreateObject("Excel.Application") Set ExcelBook = ExcelApp.Workbooks.Add() Set ExcelSheet = ExcelBook.Worksheets(1) For i = 1 To WordTable.Rows.Count For j = 1 To WordTable.Columns.Count ExcelSheet.Cells(i, j) = WordTable.Cell(i, j).Range.Text Next j Next i End Sub ``` 最后,需要关闭Word文档和Excel工作簿,并释放所有对象。可以使用以下代码实现: ``` Sub ImportWordTable() Dim WordApp As Object Dim WordDoc As Object Dim WordTable As Object Dim ExcelApp As Object Dim ExcelBook As Object Dim ExcelSheet As Object Dim i As Integer Dim j As Integer Set WordApp = CreateObject("Word.Application") Set WordDoc = WordApp.Documents.Open("C:\Users\example.docx") Set WordTable = WordDoc.Tables(1) '此时选定了第一个表格 Set ExcelApp = CreateObject("Excel.Application") Set ExcelBook = ExcelApp.Workbooks.Add() Set ExcelSheet = ExcelBook.Worksheets(1) For i = 1 To WordTable.Rows.Count For j = 1 To WordTable.Columns.Count ExcelSheet.Cells(i, j) = WordTable.Cell(i, j).Range.Text Next j Next i WordDoc.Close WordApp.Quit ExcelBook.SaveAs("C:\Users\example.xlsx") ExcelBook.Close ExcelApp.Quit Set WordDoc = Nothing Set WordApp = Nothing Set WordTable = Nothing Set ExcelSheet = Nothing Set ExcelBook = Nothing Set ExcelApp = Nothing End Sub ``` 通过以上代码,可以将Word文档的表格数据成功导入到Excel工作表。需要注意的是,需要进行正确配置可以确保成功运行此代码,并及时更改相应的文件路径。 ### 回答3: 在VBAWord表格导入到Excel是一项非常有用的操作,它可以帮助你快速地将Word的数据转移到Excel里面,从而进行更方便的处理。 下面是这个过程具体的步骤: 1. 打开需要导入Word文档,选择需要导入的表格。 2. 打开Excel文档,并在新建的模块添加以下代码: Sub ImportWordTableInExcel() Dim WordApp As Word.Application Dim WordDoc As Word.Document Dim TableNo As Integer '表格序号 Dim iRow As Long '行号 Dim iCol As Integer '列号 Set WordApp = CreateObject("Word.Application") '打开Word应用程序 WordApp.Visible = True '设置可见性 Set WordDoc = WordApp.Documents.Open(Filename:="C:\Users\johnDoe\Documents\example.docx", _ ReadOnly:=True) '打开Word文档 TableNo = WordDoc.Tables.Count '获取表格数 For Each tbl In WordDoc.Tables '循环遍历每个表格 For iRow = 1 To tbl.Rows.Count '循环遍历每行 For iCol = 1 To tbl.Columns.Count '循环遍历每列 ThisWorkbook.Worksheets(1).Cells(iRow, iCol) = _ Application.Clean(tbl.Cell(iRow, iCol).Range.Text) '将单元格的文本导入到Excel Next iCol '进入下一列 Next iRow '进入下一行 Next tbl '进入下一个表格 WordDoc.Close '关闭Word文档 WordApp.Quit '关闭Word应用程序 End Sub 3. 保存并运行宏,即可将Word的表格数据导入到Excel。在导入完成后,你可以根据需要对Excel文档进行进一步的处理。 总的来说,通过VBAWord表格导入到Excel可以大大节省你的时间和精力,同时还可以减少数据输入过程的错误。希望这份回答可以帮助你更好地掌握这项技能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值