如何用vb读取部分word文字,并将其输出到excel文件中

fantasm605 2008-03-04 09:38:17
我想利用vb读取word文件中的文本,并获得“DIM D10=190” 这样的信息
我的思路是读取DIM D10到DIM D11之间的文字,然后拆分后方如数组,然后从数组中提取,可是不知道如何提取从DIM D10到DIM D11之间的文字,不知道利用range对象是否可行?

本人非专业人士,只是写一些平时方便自己工作的小工具,希望高手指点,谢谢。


DIM D5= LOCATION OF CYLINDER CYL-B UNITS=MM
AX NOMINAL +TOL -TOL MEAS DEV OUTTOL
Z -46.00 0.25 0.25 -45.87 0.13 0.00 ------#--

DIM D10= 3D DISTANCE FROM CYLINDER CYL-B TO CYLINDER CYL-P, NO_RADIUS UNITS=MM
AX NOMINAL +TOL -TOL MEAS DEV OUTTOL
M 190.00 0.13 0.13 190.04 0.04 0.00 -----#---

DIM D11= ROUNDNESS OF CIRCLE CIR-BF UNITS=MM
AX NOMINAL +TOL -TOL MEAS DEV OUTTOL
M 0.00 0.05 0.00 0.01 0.01 0.00 -#-------
...全文
114 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
caofusheng 2008-03-04
读取后通过InStr查找DIM D10 和DIM D11的位置,然后截取就可以了
回复
caofusheng 2008-03-04
以下是读取方法

Private Sub CmdOpen_Click()
Dim lsFileName As String
Dim lsPath As String
Dim lsName As String
Dim lbApp As Boolean
Dim llCount As Long
Dim wordObj As Word.Application

'浏览要添加的的文件
CommonDialog1.CancelError = True '取消报错 并且跳出执行!
On Error GoTo err_cancel
CommonDialog1.DialogTitle = "选择要打开的Word文件"
'CommonDialog1.InitDir = App.Path
CommonDialog1.Filter = "Word文件(*.doc)|*.doc"
CommonDialog1.FileName = ""
CommonDialog1.ShowOpen
lsFileName = CommonDialog1.FileName '获取完整路径
lsName = CommonDialog1.FileTitle '只获取文件名
lsPath = Replace$(lsFileName, lsName, "") '获取文件所在的路径
'循环进行处理!判断是否存在打开的word进程 !
lbApp = False
Do While True
On Error Resume Next
Set wordObj = GetObject(, "Word.Application") '用于判断已经打开的word进程
If wordObj Is Nothing Then Exit Do '如果没有找到进程那么就退出循环
If wordObj.Documents.Count = 0 Then '如果是一个空进程就释放
wordObj.Quit
Set wordObj = Nothing
Else
For llCount = 1 To wordObj.Documents.Count '这个应用就是,手工打开文件的应用!
If Err.Number = 0 Then '有Word已经打开
If wordObj.Documents(llCount).FullName = lsFileName Then '判断是否有要打开的进程
Text1.Text = wordObj.Documents(llCount).Content.Text '这个是对文件的操作
GoTo endSub
End If
End If
lbApp = True
Next
End If
If llCount <> 0 Then Exit Do '所有打开的里面没有要打开的文件
Loop
Err.Clear
If lbApp = False Then
Set wordObj = CreateObject("Word.Application") '创建word应用类
wordObj.Visible = False
wordObj.Documents.Open (lsFileName)
Text1.Text = wordObj.ActiveDocument.Content.Text
wordObj.Quit
Set wordObj = Nothing
Else
wordObj.Documents.Open (lsFileName) '直接在原来的应用上打开文件
Text1.Text = wordObj.ActiveDocument.Content.Text
wordObj.ActiveDocument.Close (False) '关闭打开的文件'但是不关闭应用
End If
endSub:
MsgBox "读取成功"
Exit Sub
err_cancel:
MsgBox "你点的是取消"
End Sub

回复
moyifeng 2008-03-04
先读取WORD中的文本到字符串,然后就函数IsStr找出 D10和DIM D11的位置,然后再用Dim函数读取DIM D10到DIM D11之间的文字.
回复
fantasm605 2008-03-04
谢谢各位,最近要出差,恐怕不能上网了,两天后我把这个弄好就给各位加分.
caofusheng兄,能否详细指点一下如何使用instr函数以及moyifei兄所说的dim函数?我对vb的很多方法和函数都不了解.
谢谢
回复
相关推荐
发帖
VB基础类
创建于2007-09-28

7492

社区成员

VB 基础类
申请成为版主
帖子事件
创建了帖子
2008-03-04 09:38
社区公告
暂无公告