【精品文献】vb操作word.doc
《【精品文献】vb操作word.doc》由会员分享,可在线阅读,更多相关《【精品文献】vb操作word.doc(25页珍藏版)》请在三一办公上搜索。
1、追加500分求教 VB操作WORD问题悬赏分:200 - 解决时间:2007-7-28 11:42说明,用VB操作WORD,以下源码第一次操作完全正常,正常打开,正常替换,正常退出。进程中并没有留下windword的进程,但第二次继续操作时就出问题,运行到ReplaceWord()就出现462错误,关闭程序重新开始又正常。请指教出错及解决原因,追加到500分 =打开word= Function OpenWord(FileName) 打开指定word文档 Dim wordApp As New Word.Application Dim wordDoc As New Word.Document Se
2、t wordApp = CreateObject(Word.Application) wordApp.Visible = False Set wordDoc = wordApp.Documents.Open(FileName) End Function =替换关键字= Function ReplaceWord(SearchStr, ReplaceStr) 全部替换函数 Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = SearchStr .R
3、eplacement.Text = ReplaceStr .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchByte = True .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll End Function =另存为= Functi
4、on SaveAsWord(DiskStr, NameStr) ChangeFileOpenDirectory DiskStr ActiveDocument.SaveAs FileName:=NameStr, FileFormat:=wdFormatDocument _ , LockComments:=False, Password:=, AddToRecentFiles:=True, _ WritePassword:=, ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _ SaveNativePictureFormat:=Fals
5、e, SaveFormsData:=False, SaveAsAOCELetter:= _ False Application.Documents.Close Application.Quit End Function =清除对象= Function CloseWord() Set wordDoc = Nothing 清除文件实例 Set wordApp = Nothing 清除WORD实例 End Function问题补充:根据小fisher的答案,已经解决问题,另外在SaveAsWord过程中,ChangeFileOPenDirectory DiskStr更改为ChangeFileOpen
6、Directory DiskStr ,ActiveDocument.SaveAs更改为wordDoc.SaveAs,再加上原先小fisher提到要更改的地方,已经完美解决,谢谢! PS:由于百度只能2次提高悬赏,每次50分,所以现在只有200分,未能对现500分的诺言,所以只有另开贴来加送300分!提问者: 有野问 - 经理 五级 最佳答案1) Function ReplaceWord(SearchStr, ReplaceStr) 全部替换函数 Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting W
7、ith Selection.Find . 这个函数过程有错误!因为Selection是word的对象而不是VB的对象,所以不能在VB中直接引用,必须用wordApp.Selection替换掉Selection才行! 这段代码在word VBA中调试不会出问题,但移植到VB中时要注意。 2)wordApp和wordDoc必须定义为全局变量,在模块公有部分使用 Dim wordApp As Word.Application Dim wordDoc As Word.Document 来定义 然后在OpenWord(FileName)过程中使用Set wordApp =New Word.Applica
8、tion 和Set wordDoc = wordApp.Documents.Open(FileName),否则在CloseWord()过程中wordApp和wordDoc两个变量将会是未初始化的Variant类型。 3)Function SaveAsWord(DiskStr, NameStr)中的Application须使用wordApp替换,道理同1)。_-网上说 在Visual Basic中创建Word文档使用语句 Dim newDoc As Word.Document Set newDoc = new Word.Document 但是VB会提示上述语句 “用户定义类型未定义” 另一种创建
9、的方法是 Dim MsWord As Object Set MsWord = CreateObject(Word.Basic) MsWord.AppShow MsWord.FileNewDefault 可以创建 但是下述语句没办法使用(即对该文档的一些操作) With MsWord .Content.Font.Name = 宋体 .Content.Font.Size = 12 .Content.Paragraphs.LineSpacing = 15.5 End With 请教各位高手指点,我想在vb中创建一个word文档,并将程序计算的一堆结果,在该文档中按一定的格式打印出来。 另,我在wor
10、d中录制了一段宏,请问在VB中如何调用,要求代码 Sub zz() ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=6, NumColumns:= _ 6, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _ wdAutoFitFixed With Selection.Tables(1) If .Style 网格型 Then .Style = 网格型 End If .ApplyStyleHeadingRows = True .ApplyStyleLa
11、stRow = True .ApplyStyleFirstColumn = True .ApplyStyleLastColumn = True End With Selection.TypeText Text:=1 Selection.MoveRight Unit:=wdCell Selection.TypeText Text:=2 Selection.MoveRight Unit:=wdCell Selection.TypeText Text:=3 Selection.MoveRight Unit:=wdCell Selection.TypeText Text:=4 Selection.Mo
12、veRight Unit:=wdCell Selection.TypeText Text:=5 End sub提问者: zhaizhaiya - 助理 三级 最佳答案将 With MsWord .Content.Font.Name = 宋体 .Content.Font.Size = 12 .Content.Paragraphs.LineSpacing = 15.5 End With 改写为 MsWord.Content.Font.Name = 宋体 MsWord.Content.Font.Size = 12 MsWord.Content.Paragraphs.LineSpacing = 15.
13、5 就可以了。 _-用vb读word时,在程序读完,为什么还有关联,怎样给她关联除啦悬赏分:0 - 解决时间:2008-10-23 10:06用vb实现读word程序的操作! 也就是说当我运行vb程序时读啦一次word 第二次再执行时还是第一次的结果! 例如执行下面这个语句时: If NewDoc.Paragraphs(1).Range.Font.Name = 新 宋 体 Then s = s + 0.5 x = MsgBox(s= + Str$(s), 64, 字体为1.5) 执行第一次之后,再改程序,执行时,总是提示word在另一个地方已经打开,实际上没有打开,我想这是由于关联的问题!提问
14、者: lcs6678 - 助理 二级 最佳答案在任务管理器下的进程下看看,肯定打开了。 不知道你是用什么方法定义的word对象。 如果这样定义: Dim a As Object, b As Object, c As Object Set a = CreateObject(word.application) Set b = a.Documents.open(c:1 .doc) 用以下语句关闭 b.close a.quit _在VB如何存取word格式的文件悬赏分:30 - 解决时间:2006-9-12 08:30我想把用vb计算的一堆结果打印在word里面,并且有固定格式的简单排版,最好能在wo
15、rd中打印一些表格,请问用什么样的函数或者对象实践?希望高手帮忙,要是能加一点说明,更加感激不尽提问者: zhaizhaiya - 助理 二级 最佳答案我帮你搜索到了两种方法 虽然我自己也不懂 但是也许你会懂吧 通过VBA进行WORD调用,要替换WORD中固定位置的值,可以事先在文档中定义标签,然后修改标签的内容即可,不用查找。 VB中用VBA调用WORD的方法: 菜单-工程-引用-Microsoft Word 9.0 Object Library (后面的数字为版本号) Dim wdApp As New Word.Application Dim docApp As New Word.Docu
16、ment 具体用怎么用标签替换,可以到WORD中录制宏看看就知道了,宏可以直接在VB中通过VBA执行。 方法2 使用VB编程时,有时需要调用Microsoft Word对文字进行编辑、排版及输出。为实现这种调用,可以使用Shell函数、OLE自动化、在包容器中嵌入Word对象等方法。经过试用和比较,总结出了这几种方法的各自特点。 1 使用Shell函数直接调用 语法:Shell (pathname,windowstyle).Pathname是指要执行的程序的名字和任何必须的参数或命令行开关,可以包括目录和驱动器名;Windowstyle是执行程序的窗口风格的数字。 使用Shell调用Word比
17、较简单,编程量小,但必须明确指定Word所在路径,这不利于移植,而且,不能对Word进行控制,不利于程序和Word之间的数据交换。 2 使用OLE自动化控制Microsoft Word 2.1 使用方法 (1)Word为OLE自动化提供一种称为“Basic”的对象,要在VB中控制Word ,首先要定义一个引用Word中“Basic”对象的对象变量:Dim Wordobj as Object (2)将Word 中的“Basic”对象赋给该对象:Set Wordobj=CreateObject(Word.Basic) (3)可以使用大多数WordBasic语句和函数控制Word或Word文档,使用
18、方法和在Word宏中使用WordBasic指令的方法基本相同。 (4)关闭Word:Set Wordobj =Nothing。 注意:“Basic”对象不支持关闭它自己的一个方法。即若在OLE自动化中关闭了Word,则对象被置为Nothing,便不能再对对象进行操作,程序出错。 2.2 VB指令与WordBasic指令的差异 (1)有一些语句和函数不能使用,包括:控制结构,如WhileWend和IfThenElse;声明语句,如Dim;定制对话框相关的语句:FileExit语句;要求数组变量作为参数的语句或函数。 (2)也有一些指令使用方法不同。返回字符串以一个美元符($)结束的WordBas
19、ic函数的关键字必须括在方括号中。例如,在WordBasic宏中的GetBookmark$()语句:mark$=GetBookmark$(Address),若用VB调用,必须这样写mark$=Wordobj.Ge-tBookmark$(Address)。选择一个命令按钮用“True”,不选择用“False” 2.3 对OLE自动化的说明 Word可以为OLE自动化给另一个应用提供对象,但是它不能使用OLE自动化访问其它应用中的对象。例如:VB和Excel可以使用OLE自动化访问Word,但是Word不能使用OLE自动化访问它们。 3 在包容器中嵌入Word对象 在VB中,要访问在包容器中嵌入的
20、Word对象,首先要在项目中插入对象。做法如下:在窗体中插入OLE控件,对象类型选择“MicrosoftWord图片”或“Microsoft Word文档”,再按“确定”。 然后用Object属性访问文档或图片,并使用WordBasic语句和函数作用于它。嵌入的对象必须在可被访问之前被激活,可以使用Action属性激活OLE控件。例如,使用下面指令访问一个嵌入在称为OLE1的OLE控件中的文档: Dim Wordobj as Object OLE1.Action =7 Set Wordobj =OLE1.Object.Application. WordBasic 其他方面,使用方法同OLE自动
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品文献 精品 文献 vb 操作 word

链接地址:https://www.31ppt.com/p-2389386.html