在excel中的VBA里如何使用批量读取控件(如文本框)中的数据。

有一个网页,拷贝下来的数据全部都是一个一个的文本框,数据在文本框中,没法通过格式粘贴或者在word,文本文件中去处,因为只要去除了,就连数据也没有了。因此只能使用VBA来进行。比如 a=Worksheets(1).HTMLText1.Value,
a=Worksheets(1).HTMLText2.Value

但是有100个

使用VBA获取工作表里边文本框、图形的文本数据时,在不确定文本框、图形数量的情况下,可以使用“For Each……In……Next”对工作表里面的每一个文本框、图形进行访问,然后使用“.TextFrame2.TextRange.Text”获取里边的文本数据写入单元格。

VBA程序如下截图,shp为工作表Sheet1里边所有图形中的一个(每执行一次For循环就提取一个,不重复)。

【注】上图的VBA程序引用自百度经验《使用VBA提取文本框的文本数据》

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-06-08
可以使用 Me.Controls("控件名" ).Value 的方式来读取,
比如:读取label1-60的名称保存到数组里面
ReDim arr(1 To 60)
For i = 1 To 60
arr(i) = Me.Controls("Label" & i).Caption
Next i本回答被网友采纳
第2个回答  2018-06-08
尝试:
Worksheets(1).OLEObjects("HTMLText" & i).Object.Value
i 是变量,1~100追问

运行错误1004,我是office 2007,是我写错了吗,代码如下:
for i =1 to 100
a= Workbooks("1.xlsx").Worksheets(1).OLEObject("HTMLText"&i).Object.Value
Next i

追答

&前后有空格

追问

对,我知道,只是敲到这的时候忘记写空格了,还有刚才OLEObject后面少了一个s

for i =1 to 100
a= Workbooks("1.xlsx").Worksheets(1).OLEObjects("HTMLText" & i).Object.Value
Next i
还是1004

追答

能说说你这个控件怎么弄到excel中的?哪个网站复制的数据?没法尝试

追问

是我们一个内网系统,外网看不到。粘贴下来后,在设计模式下查看属性可以发现是HTMLText控件和HTMLSelect控件。删除控件,就连内容一起删除了。

追答

要么发我一份excel文件看看 cnbubble,后面是163的邮箱

相似回答