按住Alt键,同时按住鼠标左键并移动鼠标进行指定区域选择,然后按Ctrl+C,进行复制,即可读取指定区域的内容。
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册、网页空间、营销软件、网站建设、辉县网站维护、网站推广。
不清楚报错信息,只能给以下提示:
1、工程--引用,选Microsoft Word 11.0 Object Library
2、声明并赋值word程序相关变量,注意步骤不能乱。
Dim appObj As New Word.Application '新建一个word程序对象
Dim docObj As Word.Document '声明文档对象,也可以用new新建
Dim strFile As String = "D:\MyDocu.doc"
docObj = appObj.Documents.Open(strFile, False, False, False, "", "", False, "", "", , False, False, False) '打开文档
docObj.Activate()'激活文档
.......
With docObj
.Save()
.Close()
End With
docObj = Nothing
appObj = Nothing
注意:声明word对象和文档对象,应该提示错误,你只需要点击“示警”图标,在展打的选项里选第1项导入就可以了。
在专业论坛上找了一个:
Sub Macro1()
Dim p$, f$, s$, a, arr, brr(1 To 6000, 1 To 20), d As Object, i, l, m
Set d = CreateObject("scripting.dictionary")
a = Array("aaa", "身份证号码", "年龄", "姓名", "性别", "工作", "职业", "兴趣", "住址")
For i = 1 To UBound(a)
d(a(i)) = i
Next
p = ThisWorkbook.Path "\"
With CreateObject("word.application")
.Visible = False
f = Dir(p "*.doc")
Do While f ""
.Documents.Open p f
For l = 1 To .ActiveDocument.Tables.Count
With .ActiveDocument.Tables(l)
For i = 1 To .Rows.Count
s = Replace(.Cell(i, 1).Range.Text, Chr(7), "")
s = Left(s, Len(s) - 1)
If d.Exists(s) Then brr(m + d(s), 2) = Replace(.Cell(i, 2).Range.Text, Chr(7), "")
Next
For i = 1 To 8
brr(m + i, 1) = a(i)
Next
End With
m = m + 9
Next
.ActiveDocument.Close
f = Dir
Loop
.Quit
End With
Set MyWord = Nothing
ActiveSheet.UsedRange.ClearContents
[a1].Resize(m, 2) = brr
End Sub
将WDApp.wdParagraph直接修改成数值4,也就是变成 Unit:=4 试试看!
同时将后面的:Alignment:=WDAPP.wdAlignTabRight改成:Alignment:=2,
将Leader:=WDAPP.wdTabLeaderDashes改成: Leader:=2
如果今后遇到这种问题,直接打开Word,然后
sub xx()
msgbox wdParagraph
end sub
就可以得到wdParagraph的真实值。
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一样,非常方便。
添加spire.doc.dll为引用,在vb.net中读取指定word文档的内容到 txt文件,代码示例如下:
'加载Word文档
Dim doc As Document = New Documentdocument.LoadFromFile("测试文档.docx")
'使用GetText方法获取文档中的所有文本
Dim s As String = doc.GetText
File.WriteAllText("文本1.txt", s.ToString)