Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 9374|回复: 12

VBA自动填表单问题:如何操作OBJECT

[复制链接]
发表于 2014-3-7 14:09 | 显示全部楼层 |阅读模式
代码如下:
<HTML>
<HEAD>
<TITLE>品牌选择</TITLE>
</HEAD>
<BODY topMargin=0 ><!--METADATA TYPE = "MsHtmlPageDesigner" startspan-->
<object id="wg_lbcx" classid="clsid:2DC323DC-FE35-4AFA-ACB9-8297A133503D"></object>
<TABLE align="center" id=Table1 name="Table1">
<TR>
<TD align=="center" >
<OBJECT id=TV classid=CLSID:0713E8A2-850A-101B-AFC0-4210102A8DA7>
<param name = "_ExtentX" value="8308">
...
...
</OBJECT>

截图如下:
问题.jpg

问题如下:
1、正常操作如下:鼠标点选左边的品牌名称下的品牌:如现代,右侧的类别名称自动填入“现代”,类别编码自动填入“2”,所选层次自动填入“1”,然后点击确定。
2、现在我使用VBA语句:
oDoc.Document.all.LBMC.Value = "现代"
oDoc.Document.all.LBBM.Value = "2"
oDoc.Document.all.SXCC.Value = "1"
oDoc.Document.all.QueDing.Click

能填入文字,但是提交确定按钮时,出错
3、我的问题是,如果用VBA实现点击了左边品牌名称的效果。
“onchange”不行,

请高手指教!
发表于 2014-3-7 15:16 | 显示全部楼层
这个应该在网页里就能解决掉的吧。
回复

使用道具 举报

 楼主| 发表于 2014-3-7 15:43 | 显示全部楼层
hwc2ycy 发表于 2014-3-7 15:16
这个应该在网页里就能解决掉的吧。

版主你好,我想知道方法,也就是说:你能提供一下参考代码吗?
我是初次接触这类问题,一点头绪都没有,你这样的回答我无从下手啊!!{:081:}
回复

使用道具 举报

发表于 2014-3-7 15:45 | 显示全部楼层
wanao2008 发表于 2014-3-7 15:43
版主你好,我想知道方法,也就是说:你能提供一下参考代码吗?
我是初次接触这类问题,一点头绪都没有, ...

建议你贴一个具体的网站,这样也才好写代码去测试。


回复

使用道具 举报

 楼主| 发表于 2014-3-7 16:16 | 显示全部楼层
hwc2ycy 发表于 2014-3-7 15:45
建议你贴一个具体的网站,这样也才好写代码去测试。

其实是我们的内部网站,实在不能贴太多的东西。

我贴的图里,左边的列表是由<OBJECT>调用数据库而来的,用鼠标点击后自动将数据传到右侧,然后确认可提交。

但是通过VBA填入的同样的内容不能提交。

比如下面这个网站的“现居住地”,用VBA语句:        XXXX.document.all.ulive1.Value = "北京" 可以填充,

问题.jpg

(接上)但是确打不开下级(即后面)的下拉选框,这时就需要“.fireevent ("onchange")”来刷出下级下拉框。

我的意思就是,有没有像"onchange"这样的语句来操作<OBJECT>
回复

使用道具 举报

发表于 2014-3-7 16:20 | 显示全部楼层
既然是内部的,我也没法写代码给你测试。
http://www.w3school.com.cn/
你到这查查相关的网页资料吧,如何操作的也有。
HTML DOM这块。

回复

使用道具 举报

发表于 2014-3-7 16:21 | 显示全部楼层
学习,帮顶
回复

使用道具 举报

 楼主| 发表于 2014-3-7 16:29 | 显示全部楼层
hwc2ycy 发表于 2014-3-7 16:20
既然是内部的,我也没法写代码给你测试。
http://www.w3school.com.cn/
你到这查查相关的网页资料吧,如何 ...

象这种VBA自动填网页的代码,我应该参考哪里呢?

    With CreateObject("internetexplorer.application")
            .Visible = True
            .Navigate "htt p: // bbs.szonline.net/reg/register.aspx"
            Do Until .ReadyState = 4
                DoEvents
            Loop
        Set oDoc = .Document
    End With

就像这种代码应该看哪个呢?
回复

使用道具 举报

 楼主| 发表于 2014-3-7 22:19 | 显示全部楼层
hwc2ycy 发表于 2014-3-7 16:20
既然是内部的,我也没法写代码给你测试。
http://www.w3school.com.cn/
你到这查查相关的网页资料吧,如何 ...

请问版主,用VBA怎么操作网页里的dataGrid,它的代码如下:

<OBJECT id="myDataGrid" style="Z-INDEX: 103; LEFT: 42px; WIDTH: 465px; POSITION: absolute; TOP: 281px; HEIGHT: 122px" classid="clsid:CDE57A43-8B86-11D0-B3C6-00A0C90AEA82">
<PARAM NAME="_ExtentX" VALUE="12303">
<PARAM NAME="_ExtentY" VALUE="3228">
<PARAM NAME="_Version" VALUE="393216">
<PARAM NAME="AllowUpdate" VALUE="255">
<PARAM NAME="AllowArrows" VALUE="255">
<PARAM NAME="Appearance" VALUE="1">
<PARAM NAME="BackColor" VALUE="2147483653">
<PARAM NAME="BorderStyle" VALUE="1">
<PARAM NAME="DefColWidth" VALUE="0">
<PARAM NAME="Enabled" VALUE="255">
<PARAM NAME="ColumnHeaders" VALUE="255">
<PARAM NAME="ForeColor" VALUE="2147483656">
<PARAM NAME="HeadLines" VALUE="1">
<PARAM NAME="RowHeight" VALUE="15">
<PARAM NAME="TabAcrossSplits" VALUE="0">
<PARAM NAME="TabAction" VALUE="0">
<PARAM NAME="WrapCellPointer" VALUE="0">
<PARAM NAME="RowDividerStyle" VALUE="2">
<PARAM NAME="FormatLocked" VALUE="0">
<PARAM NAME="AllowAddNew" VALUE="0">
<PARAM NAME="AllowDelete" VALUE="0">
<PARAM NAME="RightToLeft" VALUE="0">
<PARAM NAME="DataMember" VALUE="">
<PARAM NAME="Caption" VALUE="">
<PARAM NAME="ColumnCount" VALUE="2">
<PARAM NAME="SplitCount" VALUE="1">
</OBJECT>


其实就是显示一个表格,调用数据库出现的表格,当鼠标点击某个格后,这个格的内容就被赋值到指定的TEXT标签里。

我想知道如何能让VBA操作这个表格,就象鼠标点击了一样,

或者是说:让VBA点击格里内容为“三星”的格,就象鼠标点了那个内容为“三星”的格

回复

使用道具 举报

 楼主| 发表于 2014-3-7 22:45 | 显示全部楼层
发2个图说明一下吧:

问题-1.jpg
调用后大概就是这个样子

问题-2.jpg
当点击“唐龙”时,住息就自动赋到上面的格里

请问如何用VBA操作这个DataGrid?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-20 08:32 , Processed in 0.415453 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表