用户登录
用户注册

分享至

vba打开word直接执行

  • 作者: 达?矢抾哆拉?
  • 来源: 51数据库
  • 2020-04-21

1.用VBA直接在WORD中能正常运行的方法或属性相关常量设置,在

前期绑定的好处在于,由该绑定类库所引申出来的常数、对象、属性和方法,都可以被直接应用。

对于wdPropertyLines和wdAlignParagraphCenter这些常数,如果在前期绑定时,那么这些常数就和其对应的值一一对应了,因为在类库的内部,已经对这些常数进行了定义和赋值。

然而通过后期绑定Set wordAppl = CreateObject("Word.Application")这种方法引用的word对象,仅仅wordAppl这个实例才拥有各种属性和方法。然而Microsoft Word 11.0 Object Library这个类库所包含的word.application仅仅只是其中的一个对象,wdPropertyLines和wdAlignParagraphCenter在这个类库中,但并不一定在word.application这个对象中。

而且,你的excel因为没有引用Microsoft Word 11.0 Object Library,所以计算机就不能识别,于是产生错误。

解决办法,你打开一个Word文档,然后在Word中通过 :

Sub xx()

Msgbox wdAlignParagraphCenter '弹出值为:1

MsgBox wdPropertyLines '弹出值为:23

End Sub然后,你在Excel中,使用如下代码:

.ParagraphFormat.Alignment = 1 '1 = wdAlignParagraphCenter

wdLines =.BuiltInDocumentProperties(23) '23 = wdPropertyLines你可以一试,希望能够正确,并对你有帮助!!

2.VBA 如何引用一个已打开的word,我在一个过程里打开了word文档,

建议把myworkbook 改为全局变量,在打开过程赋值后,后面的

Dim myworkbook As Word.Document

Set myworkbook = Application.Documents("C:\网络公共盘\Normal\C.docm")

'上面这句执行不了啊这两句去掉,不再重新定义并赋值。直接使用即可。

这里主要是你在程序内部打开的,操作起来还算便利。如果是在程序运行之前就已经打开的Word可以用其他方式(GetObject)获得。

3.excel VBA用何种代码实现调用word中的内容

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

Set WordApp = CreateObject("Word.Application")

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

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

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

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

4.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)

5.VB中怎样直接打开word文件

试一下Shell函数

Shell 函数

执行一个可执行文件,返回一个 Variant (Double),如果成功的话,代表这个程序的任务 ID,若不成功,则会返回 0。

语法:Shell(pathname[,windowstyle])

pathname 必要参数。Variant (String),要执行的程序名,以及任何必需的参数或命令行变量,可能还包括目录或文件夹,以及驱动器。

Windowstyle 可选参数。Variant (Integer),表示在程序运行时窗口的样式。如果 windowstyle 省略,则程序是以具有焦点的最小化窗口来执行的。

windowstyle 命名参数有以下这些值:

常量 值 描述

vbHide 0 窗口被隐藏,且焦点会移到隐式窗口。

VbNormalFocus 1 窗口具有焦点,且会还原到它原来的大小和位置。

VbMinimizedFocus 2 窗口会以一个具有焦点的图标来显示。

VbMaximizedFocus 3 窗口是一个具有焦点的最大化窗口。

VbNormalNoFocus 4 窗口会被还原到最近使用的大小和位置,而当前活动的窗口仍然保持活动。

VbMinimizedNoFocus 6 窗口会以一个图标来显示。而当前活动的的窗口仍然保持活动。

例如

Shell C:\windows\system32\notepad.exe, vbNormalFocus '打开记事本

只要把word的具体路径写对就可Shell打开了。

6.如何用VBA打开固定文件下所有WORD文件,自动运行宏后打印

处理思路为:制作一个Doc文档,里边包含处理过程的代码。需要使用时,将这个doc文档置于需要处理文档所在文件夹中,执行代码即可自动完成。如此即可达到一劳永逸的效果。

为便于使用,建议此doc文档中放置一个命令按钮(CommandButton,可标记为“开始执行”),一个可供显示处理过的文档名称的列表框(ListBox),单击命令按钮执行需要的处理过程,列表显示文档名,过程结束进行相应的提示。

假设您已经置入了CommandButton和ListBox,请双击CommandButton进入代码编辑窗口,将以下代码复制进去,补充完整您需要的一些操作代码即告完成。

'下面是需要复制的代码:

On Error GoTo handerr:

'请先单击代码编辑窗口的菜单“工具/引用”勾选“Microsoft Scripting Runtime”

'否则将无法使用本代码块,放弃使用 Dir 函数是为了不受版本影响

Dim Str1 As String

Dim Fso As New FileSystemObject

Dim Fl As File

Dim Fd As Folder

Dim odoc As Word.Document

If MsgBox("您确实需要开始执行此过程吗?", vbQuestion + vbYesNo, "提示") = vbNo Then

Exit Sub

End If

'清除显示已经处理的文档名列表,如果不需要,把下面一句删除

ListBox1.Clear

Set Fd = Fso.GetFolder(ThisDocument.Path)

'处理每一个文档

For Each Fl In Fd.Files

Str1 = LCase(Fl.Name)

If InStr(1, Str1, ".doc") > 0 And InStr(1, Str1, "~") = 0 And Str1 ThisDocument.Name Then

'如果不需要显示处理的文档名列表,请删除下面一句

ListBox1.AddItem Fl.Name

Set odoc = Documents.Open(CStr(Fl))

odoc.Activate

'下面填写您需要在打开文档后的一些处理动作,如设置页眉,插入图片等

'上面填写您需要处理的一些动作

odoc.Save '保存此文档

odoc.PrintOut '打印此文档

odoc.Close '关闭此文档

End If

Next Fl

'如果上面删除了列表显示语句,请把下面4行删除,再用最后一行进行操作结束

If ListBox1.ListCount > 0 Then

MsgBox "过程执行完毕!" & vbCrLf &; "列表中的" & ListBox1.ListCount &; "个文档等待打印机打印。", vbInformation, "提示"

Else

MsgBox "过程结束,没有任何文档可操作!", vbInformation, "提示"

End If

'msgbox "过程结束!",vbInformation,"提示"

Exit Sub

handerr:

MsgBox Err.Description, vbInformation, "错误提示"

7.怎么把word 宏设置成自动执行

通过为一个宏赋予某个特殊的名称,就可在执行某项操作(例如启动 Word 或打开文档)时自动运行宏。Word 将下列名称识别为自动宏,或称

“auto”宏。

AutoExec:启动 Word 或加载全局模板时

AutoNew:每次新建文档时

AutoOpen:每次打开已有文档时

AutoClose:每次关闭文档时

AutoExit:退出 Word 或卸载全局模板时

当以下条件之一为真时,将识别代码模块中的自动宏。

* 模块在自动宏(如 AutoExec)之后命名,并且包含一个名为“Main”的过程。

* 任何模块中的过程在自动宏之后命名。

与其他宏一样,自动宏也可以保存于 Normal 模板、其他模板或文档中。要让自动宏运行,它必须位于活动文档的 Normal 模板中,或活动文档

选用的模板中。

唯一例外的是 AutoExec 宏,它只有存储于以下位置时才可自动运行:Normal 模板、通过“模板和加载项”对话框全局加载的模板、或由

“Startup”文件夹指定的文件夹中的全局模板。

在命名冲突的情况下(多个自动宏名相同),Word 将运行上下文中最近的自动宏。例如,如果同时在文档及其附加的模板中创建了 AutoClose

宏,则仅执行文档中的自动宏。如果在 Normal 模板中创建了 AutoNew 宏,只有当文档或其附加模板中没有名为 AutoNew 的宏时,该自动宏才

能运行。

注:按住 Shift 可以终止自动宏的运行。例如,基于包含 AutoNew 宏的模板新建文档时,按住 Shift 可终止 AutoNew 宏的运行。方法是:按

住 Shift,单击(“文件”菜单)“新建”对话框中的“确定”按钮,并在显示新文档前持续按住 Shift。如果运行一个宏时有可能触发自动

宏,(这种情况,我没遇过!)可用下列指令终止自动宏的运行:WordBasic.DisableAutoMacros

8.Word VBA制作的窗体如何生成可执行程序

在Word2010文档窗口显示“开发工具”选项卡 “开发工具”功能区中包括VBA代码、宏代码、模板和控件等Word2010开发工具,默认情况下,“开发工具”选项卡并未显示在Word2010窗口中,用户需要手动设置使其显示,操作步骤如下所述: 第1步,打开Word2010文档窗口,依次单击“文件”→“选项”按钮,如图1所示。

图1 单击“选项”按钮 第2步,在打开的“Word选项”对话框中切换到“自定义功能区”选项卡,在“自定义功能区”区域的“主选项卡”列表中选中“开发工具”复选框,并单击“确定”按钮,如图2所示。 图2 选中“开发工具”复选框 第3步,返回Word2010文档窗口,可以在功能区看到“开发工具”选项卡,如图3所示。

图3 “开发工具”选项卡。

转载请注明出处51数据库 » vba打开word直接执行

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