源代码在办公室电脑上
明天上班贴给你
工程先引用word
Dim objWord As Object
Const CLASSOBJECT = "Word.Application"
Set objWord = CreateObject(CLASSOBJECT)
objWord.Visible = False ’隐藏word界面
Dim win As Object
Set win = objWord.Documents.Add(App.Path & "\V-2.dot") '打开word模版把记录替换到模版中
Set MyTable = win.Tables(1) '将数据写入word 表中
MyTable.Cell(5, 4) = Adodc1.Recordset.Fields("l1") & ""
MyTable.Cell(6, 4) = Adodc1.Recordset.Fields("l2") & ""
MyTable.Cell(7, 4) = Adodc1.Recordset.Fields("l3") & ""
MyTable.Cell(8, 4) = Adodc1.Recordset.Fields("l16") & ""
MyTable.Cell(9, 4) = Adodc1.Recordset.Fields("l17") & ""
objWord.Visible = True
objWord.PrintPreview = True
Do
DoEvents
'判断是否在预览状态
If Not objWord.PrintPreview Then
objWord.ActiveDocument.Close (0) '不保存直接退出
'objword.Quit '用它可以直接退出word 但是我用的时候总是卡后来干脆不用了手运关闭word
Exit Do
End If
Loop
我也是刚学还不精
希望对你有帮助来自:求助得到的回答
vb.net 2010 调用word程序 打开一个word文档
1 使用Shell函数直接调用
语法:Shell (pathname[,windowstyle]).Pathname是指要执行的程序的名字和任何必须的参数或命令行开关,可以包括目录和驱动器名;Windowstyle是执行程序的窗口风格的数字。
使用Shell调用Word比较简单,编程量小,但必须明确指定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文档,使用方法和在Word宏中使用WordBasic指令的方法基本相同。
(4)关闭Word:Set Wordobj =Nothing。
注意:“Basic”对象不支持关闭它自己的一个方法。即若在OLE自动化中关闭了Word,则对象被置为Nothing,便不能再对对象进行操作,程序出错。
2.2 VB指令与WordBasic指令的差异
(1)有一些语句和函数不能使用,包括:控制结构,如While…Wend和If…Then…Else;声明语句,如Dim;定制对话框相关的语句:FileExit语句;要求数组变量作为参数的语句或函数。
(2)也有一些指令使用方法不同。①返回字符串以一个美元符($)结束的WordBasic函数的关键字必须括在方括号中。例如,在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中,要访问在包容器中嵌入的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自动化。使用在包容器中嵌入的Word对象,Word显示的窗口大小、位置与OLE控件定义的大小、位置相同,而且工具栏显示位置与Word脱离。这一点与OLE自动化相比,是个不足。
总之,要想在Microsoft Visual Basic中控制Microsoft Word,最好使用OLE自动化,通过使用WordBasic指令对Word进行全面控制,而且,用户使用起来与使用Microsoft Word一样,非常方便。
请问vb如何访问word中的嵌套表格中的数据?
曾经做过些。复制下来给你参考 我是从XML里读到数据往Word里面替换数据的。 制作一个Word模板,里面可变的内容用{$TITLE}代替 {$TITLE} Dim wordApp As Word.Application Set wordApp = New Word.Application wordApp.Visible = False Dim wordSelection As Word.Selection Dim objDoc As Word.Document Set objDoc = wordApp.Documents.Open("template.doc") Set wordSelection = wordApp.Selection ReplaceChar "{$TITLE}", xmlNode.Text If xmlNodes.Length > 1 Then objDoc.Tables(1).Select Selection.InsertRowsBelow xmlNodes.Length - 1 End If '美化Word文件:去除掉重复的段落标记。 Public Sub ReduceParagraph() '必须写为wordApp.Selection wordApp.Selection.Find.ClearFormatting wordApp.Selection.Find.Replacement.ClearFormatting With wordApp.Selection.Find .Text = "^p^p" .Replacement.Text = "^p" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchByte = True .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With wordApp.Selection.Find.Execute Replace:=wdReplaceAll End Sub '直接将全部匹配的标签替换为结果文本。 Public Sub ReplaceChar(ReplacedStr As String, ReplacementStr As String) Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = ReplacedStr .Replacement.Text = ReplacementStr .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 'Selection.TypeText Text:=ReplacementStr End Sub '从前往后,查找图片标签,然后直接插入图片,图片文件可以本地全路径或者Web全路径。 Public Sub ReplaceImg(ReplacedStr As String, ReplacementStr As String) Selection.Find.ClearFormatting With Selection.Find .Text = ReplacedStr .Replacement.Text = "" .Forward = True .Wrap = wdFindStop .Format = False .MatchCase = False .MatchWholeWord = False .MatchByte = True .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=1 Selection.InlineShapes.AddPicture fileName:= _ ReplacementStr, LinkToFile:=False, _ SaveWithDocument:=True End Sub
谢谢老哥,我明天上班试试,万分感谢。
怎么用VB打开word/EXCEL
……
……
恐怕难以完成你的要求。
要知道在VB中doc和xls文件只能调用word和excel来打开
VB是不能独立读取这些文件的。
除非你对doc和xls文件格式有相当了解
达到了wps2005工程师的水平
xls文件到还能通过其他方法来获取其中的数据
而且只能获得数据,
格式信息一定要通过引用office对象来取得
doc文件就更不要多想了
肯定不行。
但后台打开文件不让软件界面显示是完全可以做到的。
事实是
当你引用了office对象
除非专门加入Visible = True 命令显示word或excel界面
不然软件的界面是不会显示的。
vb 访问word 嵌套表格
vba操作word文档插入表格中内嵌表格的单元格数据,只要操作内嵌表格在原表格中所在的单元格对象就可以了
能把代码发给我吗?谢谢!
VB程序链接的word文档内容怎么改?
对象链接与嵌入控件OLE(ObjectLinkingandEmbedding),可以使VB应用程序访问Windows环境中其他应用程序的对象,从而使VB能够使用其他应用程序的数据。例如Word文档、Excel工作表等,这类对象称为OLE对象。
VB能够访问的OLE对象取决于用户系统所安装的Windows的应用程序。OLE对象可以通过VB工具箱中提供的OLE控件进行加载。OLE控件概述OLE控件处于工具箱中,它的作用是在VB应用程序中插入OLE对象,就像一个容器一样,所以又称它为OLE容器控件。
使用OLE控件,可以进行如下应用:
(1)在应用程序中,为对象创建一个占位符。运行时创建出现在OLE容器控件中的对象,或者改变已在设计时置于OLE容器控件中的对象。
(2)在应用程序中,创建链接对象。
(3)把OLE容器控件与数据库绑定。
(4)如果在OLE容器控件中移动、调整对象大小或者更新对象,那么执行相应的操作。
(5)从复制到剪贴板上的数据中创建对象。
怎样在VB中控制Word
(1)有一些语句和函数不能使用,包括:控制结构,如While…Wend和If…Then…Else;声明语句,如Dim;定制对话框相关的语句:FileExit语句;要求数组变量作为参数的语句或函数。
(2)也有一些指令使用方法不同。①返回字符串以一个美元符($)结束的WordBasic函数的关键字必须括在方括号中。例如,在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中,要访问在包容器中嵌入的Word对象,首先要在项目中插入对象。做法如下:在窗体中插入OLE控件,对象类型选择“MicrosoftWord图片”或“Microsoft Word文档”,再按“确定”。
打开word、VB、excel、outlook时都会出现无法访问所在网络位置是怎么回事呢?会不会是中毒了呢?
这因为你在安装别的软件时软件替换或删除了word、vb、excel等软件打开时必须的MINI.msi文件所需的功能模块所致。可以点击对话框中的“浏览”将安装路径引导到打不开的程序的安装文件路径并继续即可完成修复;如果安装文件位置已经删除,只能把办公软件卸载掉,再安装一个完整版的Office试试,这样一般可以解决问题。
还有注意用360清除垃圾时不要把office安装文件选上,被删除的软件模块可以直接从临时安装文件处调用安装。
转载请注明出处51数据库 » vb.net访问word vb调用word