VB程序员博客
02 7th, 2010
如下:如何用VB实现提取DCHNO对应的数据?如果回答得好,追加给分,第一次发帖!!!!
XXXX
ABCDEF1
CHGR SCTYPE SDCCH SDCCHAC TN CBCH HSN HOP DCHNO
0 4 0 2 NO 48 ON 516
3 545
576
593
631
2 0 0 2 NO 47 OFF 550
XXXX
ABCDEF2
CHGR SCTYPE SDCCH SDCCHAC TN CBCH HSN HOP DCHNO
0 14 0 2 NO 33 ON 519
3 543
562
566
573
576
611
615
623
2 2 0 2 NO 39 OFF 620
3
XXXX
ABCDEF3
CHGR SCTYPE SDCCH SDCCHAC TN CBCH HSN HOP DCHNO
0 3 0 2 NO 24 ON 517
541
557
592
595
599
606
2 0 0 2 NO 13 OFF 545
line input #文件号,字符串变量
读表?
一行一行读吧,然后用split(input," ")之类的分割
把空内容去掉,就得到你的数组了……
text文件是什么格式?
fixed,tabed/空格分的?
用 split ,很简单的,你要取哪个数?
谢谢大家都回答,我没说明我的目的,对不起;
是这样的,我要提取的是DCHNO对应下面的数字,其实用TXT打开是很规范的,不知道发上来怎么会变扭曲了。
比如:
DCHNO
541
557
592
592
592
谢谢大家
我发现你贴出来的文本内容本身就是错位的啊。
如果是“规范”的,提取数据很容易。
可不可以提供个实际样本来看一下呢?
如果文件比较大,可以只提供一部分数据。
不难
考到excel ,在数据拆分,用距离拆分就行
<
02 7th, 2010
如下:如何用VB实现提取DCHNO对应的数据?如果回答得好,追加给分,第一次发帖!!!!
XXXX
ABCDEF1
CHGR SCTYPE SDCCH SDCCHAC TN CBCH HSN HOP DCHNO
0 4 0 2 NO 48 ON 516
3 545
576
593
631
2 0 0 2 NO 47 OFF 550
XXXX
ABCDEF2
CHGR SCTYPE SDCCH SDCCHAC TN CBCH HSN HOP DCHNO
0 14 0 2 NO 33 ON 519
3 543
562
566
573
576
611
615
623
2 2 0 2 NO 39 OFF 620
3
XXXX
ABCDEF3
CHGR SCTYPE SDCCH SDCCHAC TN CBCH HSN HOP DCHNO
0 3 0 2 NO 24 ON 517
541
557
592
595
599
606
2 0 0 2 NO 13 OFF 545
line input #文件号,字符串变量
读表?
一行一行读吧,然后用split(input," ")之类的分割
把空内容去掉,就得到你的数组了……
text文件是什么格式?
fixed,tabed/空格分的?
用 split ,很简单的,你要取哪个数?
谢谢大家都回答,我没说明我的目的,对不起;
是这样的,我要提取的是DCHNO对应下面的数字,其实用TXT打开是很规范的,不知道发上来怎么会变扭曲了。
比如:
DCHNO
541
557
592
592
592
谢谢大家
我发现你贴出来的文本内容本身就是错位的啊。
如果是“规范”的,提取数据很容易。
可不可以提供个实际样本来看一下呢?
如果文件比较大,可以只提供一部分数据。
不难
考到excel ,在数据拆分,用距离拆分就行
<
02 7th, 2010
如下:如何用VB实现提取DCHNO对应的数据?如果回答得好,追加给分,第一次发帖!!!!
XXXX
ABCDEF1
CHGR SCTYPE SDCCH SDCCHAC TN CBCH HSN HOP DCHNO
0 4 0 2 NO 48 ON 516
3 545
576
593
631
2 0 0 2 NO 47 OFF 550
XXXX
ABCDEF2
CHGR SCTYPE SDCCH SDCCHAC TN CBCH HSN HOP DCHNO
0 14 0 2 NO 33 ON 519
3 543
562
566
573
576
611
615
623
2 2 0 2 NO 39 OFF 620
3
XXXX
ABCDEF3
CHGR SCTYPE SDCCH SDCCHAC TN CBCH HSN HOP DCHNO
0 3 0 2 NO 24 ON 517
541
557
592
595
599
606
2 0 0 2 NO 13 OFF 545
line input #文件号,字符串变量
读表?
一行一行读吧,然后用split(input," ")之类的分割
把空内容去掉,就得到你的数组了……
text文件是什么格式?
fixed,tabed/空格分的?
用 split ,很简单的,你要取哪个数?
谢谢大家都回答,我没说明我的目的,对不起;
是这样的,我要提取的是DCHNO对应下面的数字,其实用TXT打开是很规范的,不知道发上来怎么会变扭曲了。
比如:
DCHNO
541
557
592
592
592
谢谢大家
我发现你贴出来的文本内容本身就是错位的啊。
如果是“规范”的,提取数据很容易。
可不可以提供个实际样本来看一下呢?
如果文件比较大,可以只提供一部分数据。
不难
考到excel ,在数据拆分,用距离拆分就行
<
03 16th, 2009
不是目录,是指打开word后在左边显示的那个可以用来导航的东东,有没有办法整体提取,如果没有直接的办法,那有没有其他方法?
多谢各位了!
还记得大体思路吗?
是从哪个对象里获得的?
而且,我还需要保存链接信息。
多谢了!
ding
ding
多谢帮顶^_^
专家们快出来帮俺解答下吧。。。
“如何在VB打开Word文档”。看看:
http://community.csdn.net/Expert/topic/3549/3549637.xml?temp=.4134333
Dim app As New Word.Application
Dim doc As Word.Document
app.Visible = True
doc = app.Documents.Open("e:xxx.doc")
Dim para
For Each para In app.ActiveDocument.Paragraphs
if para.style = "标题 1" then
MsgBox app.activedocument.range.text
end if
Next para
用para.outlinelevel而不用para.Style. Outlinelevel 1-9 相当于标题级别1-9. OutlineLevel 10 为正文。
来源:http://topic.csdn.net/t/20060630/11/4852506.html
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long
Private Sub Command1_Click()
Dim wdApp As Object
Dim wdBook As Object
Set wdApp = CreateObject("Word.Application")
Set wdBook = wdApp.Documents.Open("c: est.doc")
wdApp.Visible = True
If ActiveWindow.View.SplitSpecial = wdPaneNone Then
ActiveWindow.ActivePane.View.Type = wdMasterView
'ActiveWindow.ActivePane.View.Type =wdNormalView
'ActiveWindow.ActivePane.View.Type =wdOutlineView
'ActiveWindow.ActivePane.View.Type =wdPrintPreview
'ActiveWindow.ActivePane.View.Type =wdPrintView
'ActiveWindow.ActivePane.View.Type = wdWebView
Else
ActiveWindow.View.Type = wdMasterView
'ActiveWindow.View.Type = wdNormalView
'ActiveWindow.View.Type = wdOutlineView
'ActiveWindow.View.Type = wdPrintPreview
'ActiveWindow.View.Type = wdPrintView
'ActiveWindow.View.Type = wdWebView
End If
Application.ActiveWindow.DocumentMap = True '显示文档结构
Dim wHwnd As Long
wHwnd = FindWindow("OpusApp", "Word窗体的标题")
MoveWindow wHwnd, 100, 100, 400, 300, True
End Sub
—————–
wdMasterView
wdNormalView
wdOutlineView
wdPrintPreview
wdPrintView
wdWebView
这是些Word的几种显示模式,自己一个合适的
01 8th, 2009
请问哪位高手知道在vb中如何操作word文档。我想达到的要求是:在vb中输出数据到word文档中(未建好的文档)。最好是有现成的完整的代码,在此先谢过各位了!急需!!谢谢!!!
不懂,顶一下,
楼主是兵哥哥?
不懂,帮顶
1、引用word类,我用的是Microsoft word 11.0 object library(11.0为版本号,安装的office版本不同而不同)。
2、设置word程序对象:Dim owdApp As Word.Application或Dim owdapp As New Word.Application(直接创建新对象)
3、添加新文档:Set oWdActiveDoc = owdApp.Documents.Add()
4、由数据库里按要求提取数据并写入文档:
内容太多不写了,可以参阅word的宏录入和宏编辑以及它所提供的帮助,也无外乎是选择一个区域(selection),把值赋予它或设值它的格式。
5、保存退出。If Not oWdActiveDoc Is Nothing Then oWdActiveDoc.SaveAs filename:=strTname
6、关闭对象set owdactivedoc =nothing: set owdapp=nothing
http://blog.csdn.net/mfkinfo/archive/2009/01/02/3686625.aspx
11 9th, 2008
我想将"c:1.doc"文档中的所有内容完整地输出到text1.text中,1.doc中有图片,汉字,字母。使用OPEN的方法肯定是不行的,不知如何实现?如果textbox控件不行,也可以使用picturebox或image也一样。只要能完整显示出1.doc的内容即可.请大虾赐教,谢谢
以下引自MSDN:
运行时用 OLE 容器控件创建对象
要在运行时创建链接或嵌入对象,需要在代码中使用方法和属性。OLE 容器控件有各种用来操作链接或嵌入对象的属性和方法。关于应用于 OLE 容器控件的全部属性和方法的清单,请参阅“OLE 容器控件”。
使用 Object 属性
通过使用 OLE 容器控件的 Object 属性,可以使用链接或嵌入对象的属性和方法。Object 属性是运行时、只读属性,它保持对 OLE 容器控件中的对象的引用。使用该属性执行 OLE 容器控件的自动化任务,以及程序化操作对象支持的属性和方法:
strObjName = oleObj1.Object.Name
为使用此属性,OLE 容器控件必须包含可编程的对象。关于可编程对象的详细信息,请参阅“ActiveX 部件的类型”。
运行时创建链接对象
可以用OLE容器控件的 CreateLink 方法,在运行时从文件中创建一个链接对象。这种方法需要一个文件参数 sourcedoc,从这个文件创建对象;还需要一个可选参数 sourceitem,它规定了想要从源文件中链接的数据。运行时,下面代码创建链接对象:
oleObj1.CreateLink "C:ExcelTest.xls"
注意 如果用“CreateLink”创建一个链接的对象,不必在“属性”窗口设置“类”、“SourceDoc”和“SourceItem”属性。
详细信息 请参阅“CreateLink 方法”。
在运行时创建嵌入对象
欲在运行时,从文件中创建一个嵌入的对象,可以使用 CreateEmbed 方法。这种方法有两个参数,sourcedoc 和 class(如果指定 SourceDoc,class 是可选的)。Sourcedoc 决定对象的模板,而 class 决定对象的类型。当用 CreateEmbed 时,不需要设置 SourceDoc 和 Class 属性.
下列代码,用现存文件作为对象的模板创建嵌入的对象。
oleObj1.CreateEmbed "Q1profit.xls"
详细信息 请参阅“CreateEmbed 方法”。
当创建一个空的嵌入的对象时,最好激活将要为对象提供数据的 ActiveX 部件。此时,可以使用 DoVerb 方法。它允许用户在运行时将任何数据输入应用程序中。然后,用户选择 ActiveX 部件的 Update 命令(这种菜单命令将出现在部件的“文件”菜单上),显示这些最新进入 OLE 容器控件中的数据。
要在运行时创建一个空的嵌入对象,请按照以下步骤执行:
不指定源文档,用 CreateEmbed 方法创建一个空的嵌入对象。例如,下面的 代码在 OLE 容器控件中插入一个 Microsoft Excel Worksheet 的文件模板。
oleObj1.CreateEmbed "","Excel.Sheet"
使用 DoVerb 的方法。DoVerb 方法的缺省动词依应用程序而定。对 Micosoft Excel,缺省的动词是 Edit。
例如,下列代码创建一个空的嵌入对象,然后激活使用缺省 DoVerb 操作创建该对象的应用程序。
oleObj1.CreateEmbed "", "Excel.Sheet"
oleObj1.DoVerb -5 '激活
当创建一个包含有不同应用程序的多种信息的文档应用程序时,提供空的嵌入对象是有效的方法。关于更详细的信息,请参阅“运行时让用户规定对象”。
将数据库与 OLE 容器控件绑定
可以将 OLE 容器控件与存储在 Microsoft Jet 数据库引擎或 Microsoft Access 数据库中的数据绑定。如果有一个雇员照片表的数据库,就可能要这么做。如果这些照片作为对象被存储,可以将它们与 OLE 容器控件绑定,并将它们作为用数据控件访问的每个记录显示在窗体上。为了将数据与这些数据库中的数据绑定,需要在 DataSource 属性中规定数据源(数据集名),并在 OLE 容器控件的 Datafield 属性中规定来自数据源的字段的名称。当从数据库显示一个对象时,OLE 容器控件允许用户激活、编辑和更新对象。如同任何被绑定的控件一样,当记录位置被改变时,被更新的对象将自动写回数据库。
详细信息 请参阅《数据访问指南》。
用Webbrowser控件打开即可
天狼工作室
http://www.j2soft.cn
楼上的方法可行我用下面的代码试了试,效果还好
Private Sub Form_Load()
WebBrowser1.Navigate "C:VB6.doc"
End Sub
WebBrowserrp控件在部件中是那一个?
Private Sub Command1_Click()
Dim doc As Word.Document
Dim win As Word.Window
With OLE1
.SizeMode = 1
.CreateEmbed "C:G.doc"
.DoVerb vbOLEPrimary
.AutoVerbMenu = False
End With
Set doc = OLE1.object
Set win = doc.ActiveWindow
OLE1.Move 0, 0, Picture1.Width - 70, Picture1.Height - 120
win.ActivePane.DisplayRulers = False 'Ⲃ𛃏㔃ꂾⱃꂳ㟠
win.ActivePane.DisplayVerticalRuler = False 'Ⲃ𛃏㔃ꂾⱃꂳ㟠
win.DisplayVerticalScrollBar = True '㏃⾂ⶂ㵠
win.DisplayHorizontalScrollBar = True '㏃⾂ⶂ㵠
doc.ActiveWindow.ActivePane.SmallScroll Down:=10 '㒃悶⯃㖃㠼br />
End Sub
我用这段代码,是可以把WORD文件都显示出来了,但是总是会跳转到第一页
以上代码来自网络
抛砖引玉
ok,再请教下如何让webbrowser只读?
WebBrowser是MicroSoft Internet Controls,是个IE控件,不存在只读的问题
10 17th, 2008
public wdapp as word.application
sub createword()
dim doc as word.document
if wdapp is nothing then
set wdapp =new word.application
else
set wdapp=getobject(,"word.application")'没有word程序运行时会报错
end if
set doc =wdapp.documents.add
对doc添加内容
对doc进行页面设置
wdapp.visable =true
set doc=nothing
end sub
程序内有多处类似sub createword过程用到wdapp,只打开多个word文档时,不全部关闭再新建不出错,而将所有的文档也是就word的进程结束后,再调用过程,set wdapp=getobject(,"word.application")就会出错。
而将if判断语句去掉改为set wdapp =new word.application(浪费内存),打开多个文档,只要关闭第一个建立的文档(其它的不关闭),再调用过程,对doc进行页面设置就会提示“462错误, 远程服务器不存在或不可用”,而同时对doc进行的其它操作正常,不得其解,请教高人帮忙,在此谢过!!!
如何正确的判断word运行的状态,正确释放wdapp,正确控制word的方法?
09 26th, 2008
vb不能显示ado的帮助怎么解决?
本机装的是msdn for vb6.
vb的ado帮助是在那个目录下?
我知道精简版的msdn是没有ado的帮助文档的。
但我想在vb下就可以直接用这个文档,不知道应该放在那个位置还是要设置什么东西。
搞得现在要用的时候总是打开这个文档,麻烦。
没人?
你在office安装目录下找找 2052
如果你的VB安装在默认位置,如果你的MSDN也安装在默认位置,那ADO的HELP就应该在这里:
C:Program FilesMicrosoft Visual StudioMSDN9898VS2052ado200.chm
还是不行的。
提示“不能显示帮助”。
我的电脑在这个目录下没有这个文件,我自己拷贝一份进去了还是不行。
ADO210.CHI这个文件倒是有的。
MSDN中的原话,在MSDN的这个位置
MSDN Libeary Visual Studio 6.0Visual Studio DocumentationData Access 工具技术Microsoft Data Access 组件Microsoft Data Access 组件概览
文章内容如下:
Microsoft Data Access 组件概览
Microsoft Data Access 组件是 Microsoft Data Access SDK 的一部分,而 Microsoft Data Access SDK 集成 Platform SDK。您可以在 Microsoft Developer Network Library EditionSDK DocumentationPlatform SDKDatabase 及 Messaging ServicesMicrosoft Data Access SDK 找到 Microsoft Data Access 组件。Microsoft Data Access 包含下列组件:
ActiveX Data Objects (ADO)
Microsoft ActiveX Data Objects (ADO) 是重要的应用程序接口 (API) (介于数据及信息)。ADO 提供一致且快速的数据存取和支持各种开发需求,包含建立使用应用程序、工具、语系、或 Internet 浏览器的前端数据库客户端及业务对象。ADO 是设计成一个数据接口,给予单一及多客户/服务器和 Web 数据开发解决方案。ADO 的主要好处是使用简单、快速、不需太多内存、及只占小部分的磁盘空间。
ADO 为 OLE DB 提供了一个简单使用接口; 而 OLE DB 提供基本的数据存取。在主要的分析方案中,ADO 以最少的网络流量及最少层数 (介于前端及数据资源) 完成-它提供轻便、高性能接口。ADO 使用简单,因为它使用一个熟悉的隐喻-COM自动化接口,可从今日市场上所有领导的 Rapid Application Development (RAD) 工具、数据库工具、及语系中取得。
您可以在 Microsoft Developer Network Library EditionPlatform SDKDatabase 及 Messaging ServicesMicrosoft Data Access SDKMicrosoft ActiveX Data Objects (ADO)ADO 程序员的参考资料中找到 Microsoft ActiveX Data Objects 参考资料。
不过我的MSDN是在以下位置能找到ADO帮助:
MSDN Libeary Visual Studio 6.0平台SDK数据库和信息服务\Microsoft 数据访问 SDKMicrosoft ActiveX Data Objects
如果你还找到,可能是你的MSDN没有装全吧,重新安装一次,然后选全来就OK了
09 15th, 2008
单个的文档用录制的宏能实现,如果要连续依次对多个文档写,对第二个文档写页脚时,运行到ActiveWindow就抱错,没有办法创建,不知道有什么好的解决方法?
下面是录制的宏:
Sub Macro1()
'
' Macro1 Macro
' 宏在 2007-7-11 由 litao 录制
'
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
ActiveWindow.Panes(2).Close
End If
If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
ActivePane.View.Type = wdOutlineView Then
ActiveWindow.ActivePane.View.Type = wdPrintView
End If
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
If Selection.HeaderFooter.IsHeader = True Then
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
Else
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
End If
Selection.ParagraphFormat.Alignment = wdAlignParagraphRight
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldDate
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
End Sub
在打印第二个文档的时候,运行到 ActiveWindow就提示“远程服务器不存在或不能使用”;请问怎么才能解决?
以后需再关注,现在先帮你顶一下
08 27th, 2008
刚做VB不久,不知道该怎样弄,现在可以导出生成的WORD文档,第2页是空的,要插入目录。要生成目录的字符都给标题了式样,我在WORD了录下的宏为:
Public Sub Macro1()
With ActiveDocument
.TablesOfContents.Add Range:=Selection.Range, RightAlignPageNumbers:= _
True, UseHeadingStyles:=True, UpperHeadingLevel:=1, _
LowerHeadingLevel:=1, IncludePageNumbers:=True, AddedStyles:="", _
UseHyperlinks:=True, HidePageNumbersInWeb:=True, UseOutlineLevels:= _
True
.TablesOfContents(1).TabLeader = wdTabLeaderDots
.TablesOfContents.Format = wdIndexIndent
End With
End Sub
直接调用没用,该怎么做?望各位朋友不吝赐教,谢谢!本人分数少见谅了!
vb没有做过,只能帮顶了.sorry