VBA或者VB 6.0中,要实现EXCEL与WORD的数据交换,但是对于selection和Range这两个对象VBA或VB只认EXCEL的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VBA或者VB 6.0中,要实现EXCEL与WORD的数据交换,但是对于selection和Range这两个对象VBA或VB只认EXCEL的相关的知识,希望对你有一定的参考价值。

VBA和VB6.0只认EXCEL当中的selection和range,哪怕你指定比如
dim wddoc as word.document
然后调用wddoc.range都不行。
请问有人碰到这个问题吗?如何解决?
如果真能解决,给50分。不少吧?

我想我的问题可能说的不太清楚,我是要把word里面文本里面的内容而不是表格里面的内容复制进excel的单元格里面。
事实上目前我已经找到两个办法解决这个问题,而且这两个方法都已经成功。关键的是我是个碰到问题非要搞个清楚而已。
拜托LZL3283037,我需要的文本是不确定的(如果确定了就不需要查询了,直接复制到EXCEL里面了,内容不确定,位置不确定,唯一确定的是上下文的内容)。另外即便文本是确定的,你用find不需要用selection吗?你能写一小段代码吗?比如我要在word里面查询“我是谁”这一段文字。

如果word文档也是表格,你试着在WORD录制一段操作表格的宏,然后从录制的宏中找出对表格的操作,修改一下写入你的VBA或VB6.0中。注意的是,word中的表格是word的一种对象,不能像EXCEL那样直接使用,所以还得定位对像。 比较麻烦,建议转入excel中操作完成后再复制放入word中。
如果是直接按文本存放的格式,比如“总计:300元”样式,你要对“300”这一数据操作,那就得按文本(或字符串)的操作方式进行处理。追问

如果不是表格呢?如果是表格的话,我就不会提问了。直接用wddoc.tables(0).cells来控制了,何必用selection,range,这么麻烦?您说咧?

追答

当然,那就按文本操作方式进行处理吧,首先查询,然后取值处理。与txt文件的查询处理类似。

追问

你先自己做一次再说吧,OK?都跟你说了没法用selection和range对象了。你怎么操作?

追答

不是表格,当然不能用selection和range对象,这时VB对WORD文档处理与txt文件一样,将整篇文章看做一个“字符串”,首先查询到所要操作的字符串,然后再处理。当然,这个“字符串”中的一些特殊符号可以做为查询条件的限定(如回车换行符)。
要果必须得这样处理,就得撇开“表格”思路,比如读取第一个回车符前的文本给变量x,然后写入excel的A1中,range(1,1)=x。然后进行第二段的操作直到完成。如果使用全文复制,然后粘贴的方法,得先处理了段落与excel单元格的对应关系,才能完成你的工作。这当然是一个思路,如果还有更好的方法,希望能看到。

参考技术A 这种就是用用就会了。。。只有碰到的才知道自己会不会。 如果你真打算VBA 和WordBasic 之间主要的区别是 WordBasic 语言包含由大约 900 个命令,zvsgdp追问

似乎答非所问了。

参考技术B 还没遇到过,看高手的把 参考技术C 开什么玩笑

VB/VBA worksheet_selectchange事件_参数传递

vb参数传递2种:1传值byval2传址byref 按值传递,传递其实引用象副本,传递程更改并影响原象,按址传递,传递才真原象,更改导致原引用象更改 execl VBAworksheet_selectchange事件其传递参数Target说明清楚byval即传值 Target所更改都能显现呢

参考技术A target
定义象
Worksheet_SelectionChange(ByVal
Target
As
Range)
定义
range
类型类型象
于参数引用象情况改变象属性

以上是关于VBA或者VB 6.0中,要实现EXCEL与WORD的数据交换,但是对于selection和Range这两个对象VBA或VB只认EXCEL的的主要内容,如果未能解决你的问题,请参考以下文章

Visual Basic 6.0 和 VBA 的区别

请问,编程语言中,(VB或者说VBA,),宏是啥概念啊?宏做出来一个是类模块,但是类模块

excel如何用VB实现对表格中内容进行搜索定位?

怎么吧C语言运用到Excel里去?

java 调用excel vba

Excel用宏vb命令怎指定某一列锁定,其他单元格可编辑与合并?