用户登录
用户注册

分享至

vbaword引用

  • 作者: 爱因斯坦诺维奇凯奇
  • 来源: 51数据库
  • 2020-04-21

vba,word和excel相互调用

总是要有一个打开的时机的,总要有一段打开的代码,不然怎么凭空打开,怎么获取打开的文件名.

如果你想在你的宏运行前打开,你可以把调用与打开的代码放在宏运行的前面.

如:以excel打开word为例,你可以在Workbook_Open下放置你调用和打开word 的代码:

Private Sub Workbook_Open()

dim aaa as 。application

End Sub

方法你应该比较熟悉了,就是在vbaproject下双击ThisWorkbook,然后在上边的下拉列表里选对象和事件.

如果在宏中用路径打开被调用的文件,那么该文件就必须放在路径指定的位置,我不想这样。我想放在任意位置。

放在任意位置你可以用一个打开对话框呀,

如下面代码:

Dim fd As FileDialog

Dim Wbook As Workbook

Dim rowindex As Integer

Set fd = Application.FileDialog(msoFileDialogFilePicker)

Dim vrtSelectedItem As Variant

With fd

.Filters.Add "EXCEL 文件", "*.xls", 1 '过滤

If .Show = -1 Then

rowindex = 1

For Each vrtSelectedItem In .SelectedItems

Set Wbook = Workbooks.Open(vrtSelectedItem)

VBA excel调用word内容

在有word文件的文件夹中新建一个excel工作簿,打开工作簿,按Alt+F11,把下面的代码复制进去,按F5执行。

代码会复制work文件的前300个字符到excel中。Sub test() Dim i%, myName$, myPath$, AppWord As Object Set AppWord = CreateObject("Word.Application") myPath = ThisWorkbook.Path & "\" myName = Dir(myPath & "*.doc*") With ActiveSheet .Columns("A:B").ClearContents Do While myName <> "" AppWord.Documents.Open Filename:=myPath & myName i = i + 1 .Cells(i, 1) = myName .Cells(i, 2) = AppWord.ActiveDocument.Range(Start:=0, End:=300).Text AppWord.ActiveDocument.Close False myName = Dir Loop End With AppWord.Quit Set AppWord = Nothing MsgBox "已完成。

"End Sub。

Word如何用VBA实现批量交叉引用

在Word文档中添加交叉引用的方法:

准备资料:Word 2010 一份Word格式文档

1.打开Word文档如下图所示,在正文中有三处(黄色圈出)需要添加对参考文献的交叉引用,分别为参考文献中的三条。

2.将鼠标放在第一条参考文献最前面,并点击编号,选择“定义新编号格式”,在弹出的对话框中,点击“字体”,看到图中间的界面,设置字体后,点击确定后如图,编辑“编号格式”,即在数字左右添加中英文的括号。

3.接上一步,点击上图的确定后如下图,将剩余的两条也编号,如下图。

4.如下图,在正文中选中“[1]”,然后点击“插入”中的“交叉引用”(下图中圈出),在弹出的对话框中选择第一个参考文献,点击插入后如下面的图,仔细观察会发现正文中的“1”的字体发生了改变。

5.在添加交叉引用后,将鼠标放在正文的“[1]”上停留时,就可看到下图的效果(浮出“按住ctrl并单击可访问链接”);用鼠标选中“[1]”,点击下图中圈出的格式,将编号放在右上角,效果如下图。

VBA取word段落,引用时有什么变化规律

Sub test()

Dim myRange As Range

Dim num as String, title as String

'Set ps = Selection.Bookmarks("\headinglevel").Range.Paragraphs

Set ps = ActiveDocument.Bookmarks("\headinglevel").Range.Paragraphs

For Each p In ps

Set myRange = p.Range

num = myRange.ListFormat.ListString

title = myRange.Text

MsgBox "编号:" & num & vbCrLf &; "标题内容:" & title

Next p

'Set myRange = Selection.Bookmarks("\headinglevel").Range.Paragraphs(1).Range

'MsgBox "编号:" & myRange.ListFormat.ListString & vbCrLf &; "标题内容:" & myRange.Text

End Sub

另外附上一段把标题(Heading)序号取出并附加在标题内容后面的代码:

Sub ReplaceHeadingContent()

Dim myRange As Word.Range

Dim num As String, content As String

'取得所有书签

Set ps = ActiveDocument.Bookmarks("\headinglevel").Range.Paragraphs

'对书签中每一个段落进行处理

For Each p In ps

Set myRange = p.Range

With myRange

'把Range结束范围往前移一个字符,目的是为了不包括换行符

.MoveEnd Unit:=wdWord, Count:=-1

'取出段落序号

num = Trim(.ListFormat.ListString)

'取出Heading的内容

content = Trim(.Text)

'如果段落序号不为空,则把段落序号取出附加的标题内容后面

If Trim(num) <> "" Then

If num = "1.1.1.1.1." Or num = "1.1.1.1.1" Then

MsgBox "到目标点了。"

End If

If Right(num, 1) = "." Then num = Left(num, Len(num) - 1) '不需段落序号最后面的“.”

.Text = content & "<" & num & ">"

End If

'MsgBox "编号:" & num & vbCrLf &; "标题内容:" & content

End With

Next p

End Sub

vba word 调用 excel

在有word文件的文件夹中新建一个excel工作簿,打开工作簿,按Alt+F11,把下面的代码复制进去,按F5执行。

代码会复制work文件的前300个字符到excel中。

Sub test()

Dim i%, myName$, myPath$, AppWord As Object

Set AppWord = CreateObject("Word.Application")

myPath = ThisWorkbook.Path & "\"

myName = Dir(myPath & "*.doc*")

With ActiveSheet

.Columns("A:B").ClearContents

Do While myName ""

AppWord.Documents.Open Filename:=myPath & myName

i = i + 1

.Cells(i, 1) = myName

.Cells(i, 2) = AppWord.ActiveDocument.Range(Start:=0, End:=300).Text

AppWord.ActiveDocument.Close False

myName = Dir

Loop

End With

AppWord.Quit

Set AppWord = Nothing

MsgBox "已完成。"

End Sub

如何利用vba程序在word中调用excel单元格中的数据

'代码已经测试过,请注意保持良好习惯,及时采纳,谢谢。

Sub PasteToWordDoc()'' 需要引用MIcrosoft Word 12.0 Object Library(注:12.0是版本号,可以不同)'Application.ScreenUpdating = False '关闭屏幕刷新'Selection.CopyDim wdApp As Word.Application, wdDoc As Word.DocumentDim strDocPath As String '全路径文件名Dim blnNoWd As Boolean, blnNoWdd As BooleanOn Error Resume NextstrDocPath = "C:\Users\wine\Desktop\可ihikhoi年.docm" '如果与Excel工作薄同路径,采用这面的语句也可'strDocPath = ThisWorkbook.Path & "\可ihikhoi年.docm"'调用word程序对象Set wdApp = GetObject(, "Word.Application") '实例化word对象变量If wdApp Is Nothing Then '判断word程序是否正在运行Set wdApp = CreateObject("Word.Application")wdApp.Visible = FalseblnNoWd = TrueEnd If'调用word 文档对象Set wdDoc = wdApp.Documents(strDocPath)If wdDoc Is Nothing ThenSet wdDoc = wdApp.Documents.Open(Filename:=strDocPath, Visible:=flase)blnNoWdd = TrueElsewdDoc.ActivateEnd IfwdApp.Selection.PasteExcelTable False, False, FalsewdDoc.Save'恢复环境If blnNoWdd Then wdDoc.Close: Set wdDoc = NothingIf blnNoWd Then wdApp.Quit: Set wdApp = NothingApplication.ScreenUpdating = TrueOn Error GoTo 0End Sub。

excel VBA用何种代码实现调用word中的内容?具体是如何打开word文

只要定义一个Word.Application对象,

Set WordApp = CreateObject("Word.Application")

然后操作这个WordApp 对象就可以了,就像在Word中使用VBA一样,

打开文件用 WordApp.Documents.Open 文件路径

定位主要用 WordApp.Selection.Move系列指令,也可以用WordApp.Selection.Goto

具体的你可以用录制宏的方法在Word中看看用什么代码合适。

转载请注明出处51数据库 » vbaword引用

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