Excel VBA单击由javascript控制的表中的单元格

代理

我正在尝试为excel创建网络查询,但遇到了一些麻烦。我弄清楚了如何登录到网页并单击链接以转到正确的portalID。但是,我在获取特定报告时遇到了麻烦。

要获取特定报告,我需要在表格中单击其链接,但该链接似乎使用了javascript。该表的HTML如下。该表中大约有10个单元格,但是为了保持代码亮起,我只包括了前2个单元格。如您所见,每个单元都有自己的唯一ID,因此我可以轻松地使用VBA过滤到正确的单元元素。但是,我似乎无法弄清楚如何实际单击该单元格。

<table submenu='1' border='0' cellpadding='6' cellspacing='0'
 id='ctl02n4c73594f1bf740b982340da2a792ff62_MainM' 
 class="ctl02n4c73594f1bf740b982340da2a792ff62Island"  
 style=' background:#141311; border-width:0px; width:100%; 
 cursor:Default;' onselectstart="javascript:igmenu_selectStart();" 
 onmouseover="javascript:igmenu_mouseover(this, event);" 
 onmouseout="javascript:igmenu_mouseout(this, event);" 
 onmousedown="javascript:igmenu_mousedown(this, event);" 
 onmouseup="javascript:igmenu_mouseup(this, event);"igLevel='0'>
  <tr>
    <td align='center' id='ctl02n4c73594f1bf740b982340da2a792ff62_1' 
     igTag='4eddf201-f6ed-4e11-b2ff-6a742128909c'  
     class="n_4c73594f_1bf7_40b9_8234_0da2a792ff62_Class"style=" 
     white-space: nowrap; ;" igHov='n_4c73594f_1bf7_40b9_8234_0da2a792ff62_Hover' 
     igTop='1'>Welcome</td>
    <td align='center' id='ctl02n4c73594f1bf740b982340da2a792ff62_2' 
     igTag='e0d4474e-87f8-42cc-ab47-38751029052d'  
     class="n_4c73594f_1bf7_40b9_8234_0da2a792ff62_Class"style=" 
     white-space: nowrap; ;" igHov='n_4c73594f_1bf7_40b9_8234_0da2a792ff62_Hover' 
     igTop='1'>Dashboard</td>
  </tr>
</table>

这是我的vba,可直接转到需要单击的单元格。看来我需要调用表的“ onmouseup”事件。如何将所需的单元格与表的onmouseup事件“链接”?

Sub clickTable(toFind As String, ie As Object)
'"toFind" is the ID of the cell to find, ie is the IE application
Dim ieDoc As Object 'ieDocDocument
Dim tdCollection As Object 'table that has the javascript events and contains
                            the cells I want to click
Dim cell As Object 'specific "clickable" cell in the table to "click"

    Set ieDoc = ie.document
    Set tdCollection = ieDoc.getelementbyID("ctl02n4c73594f1bf740b982340da2a792ff62_MainM").getElementsByTagName("td")
    For Each cell In tdCollection
        If cell.ID = toFind Then
            cell.Click
            Exit Sub
        End If
    Next

End Sub
代理

好吧,在搜索其他vba / javascript问题时,我实际上是自己想出来的!

我遍历了所有javascript代码,以查看HTML事件如何绑定到javascript中,并且肯定的是,“ onmouseup”需要“ onmousedown”,而“ onmouseover”需要“ onmouseover”。在这里,我试图执行最终的交互,甚至没有想到要分解javascript代码。

因此,如果其他任何人在尝试单击javascript控制的表格菜单中的单元格时遇到问题,则可能需要执行鼠标与页面交互的所有方式,具体取决于javascript的编写方式。

这是我工作的最终代码。

Sub clickTable(toFind As String, ie As Object)
'toFind is the ID of the element to find, ie is the IE application
Dim ieDoc As Object 'ieDocDocument
Dim tdCollection As Object 'table that has the javascript attributes and contains the element I want to click
Dim cell As Object 'specific "clickable" cell in the table to test

        Set ieDoc = ie.document
        Set tdCollection = ieDoc.getelementbyID("ctl02n4c73594f1bf740b982340da2a792ff62_MainM").getElementsByTagName("td")
        For Each cell In tdCollection
            If cell.ID = toFind Then
                cell.FireEvent ("onmouseover")
                cell.FireEvent ("onmousedown")
                cell.FireEvent ("onmouseup")
                Exit Sub
            End If
        Next

    End Sub

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

VBA Excel中的单元格范围

来自分类Dev

Excel-恢复由VBA删除的单元格数据?

来自分类Dev

如果单击了单元格,Excel VBA将显示msgbox

来自分类Dev

javascript中的excel单元格引用

来自分类Dev

Excel VBA需要控制,将检查是空的单元格

来自分类Dev

将单元格值添加到Excel VBA中的“右键单击”菜单

来自分类Dev

VBA 获取单击以在 Excel 2016 中打开用户框的单元格的行和列索引

来自分类Dev

Excel VBA 单击单元格以触发宏 - 不适用于合并的单元格

来自分类Dev

基于单元格VBA的Excel自动更改表名称

来自分类Dev

克隆工作表,命名,清除单元格 - Excel VBA

来自分类Dev

比较VBA中不同工作表中的2个单元格(Excel 2010)

来自分类Dev

通过单击单元格在Excel中的脚本/宏

来自分类Dev

当工作表中的任何单元格更改时,Excel VBA重新运行公式(更新)

来自分类Dev

Excel VBA设置变量以选择特定工作表中的单元格区域

来自分类Dev

如何使用VBA和Match函数更新Excel表中的单元格值?

来自分类Dev

合并整个工作表中的所有重复单元格-Excel VBA

来自分类Dev

从单元格VBA Excel中获取显式工作表超链接

来自分类Dev

从给定单元格excel-vba中查找表

来自分类Dev

Excel VBA-根据其他工作表中的事件更改单元格颜色

来自分类Dev

Excel:从工作表中调用vba函数时,将当前单元格作为参数传递

来自分类Dev

比较工作表的单元格数据在 Excel VBA 中不起作用

来自分类Dev

在另一个工作表中粘贴单元格的位置 - Excel VBA

来自分类Dev

VBA从Excel中的空白单元格中删除格式

来自分类Dev

连接Excel中多个工作表中的单元格

来自分类Dev

使用MergeArea检测VBA Excel中的合并单元格

来自分类Dev

在Excel VBA中循环遍历单元格值

来自分类Dev

使用vba比较excel中的2个单元格

来自分类Dev

连接Excel VBA中的单个单元格

来自分类Dev

单元格公式替换中的Excel VBA错误1004

Related 相关文章

  1. 1

    VBA Excel中的单元格范围

  2. 2

    Excel-恢复由VBA删除的单元格数据?

  3. 3

    如果单击了单元格,Excel VBA将显示msgbox

  4. 4

    javascript中的excel单元格引用

  5. 5

    Excel VBA需要控制,将检查是空的单元格

  6. 6

    将单元格值添加到Excel VBA中的“右键单击”菜单

  7. 7

    VBA 获取单击以在 Excel 2016 中打开用户框的单元格的行和列索引

  8. 8

    Excel VBA 单击单元格以触发宏 - 不适用于合并的单元格

  9. 9

    基于单元格VBA的Excel自动更改表名称

  10. 10

    克隆工作表,命名,清除单元格 - Excel VBA

  11. 11

    比较VBA中不同工作表中的2个单元格(Excel 2010)

  12. 12

    通过单击单元格在Excel中的脚本/宏

  13. 13

    当工作表中的任何单元格更改时,Excel VBA重新运行公式(更新)

  14. 14

    Excel VBA设置变量以选择特定工作表中的单元格区域

  15. 15

    如何使用VBA和Match函数更新Excel表中的单元格值?

  16. 16

    合并整个工作表中的所有重复单元格-Excel VBA

  17. 17

    从单元格VBA Excel中获取显式工作表超链接

  18. 18

    从给定单元格excel-vba中查找表

  19. 19

    Excel VBA-根据其他工作表中的事件更改单元格颜色

  20. 20

    Excel:从工作表中调用vba函数时,将当前单元格作为参数传递

  21. 21

    比较工作表的单元格数据在 Excel VBA 中不起作用

  22. 22

    在另一个工作表中粘贴单元格的位置 - Excel VBA

  23. 23

    VBA从Excel中的空白单元格中删除格式

  24. 24

    连接Excel中多个工作表中的单元格

  25. 25

    使用MergeArea检测VBA Excel中的合并单元格

  26. 26

    在Excel VBA中循环遍历单元格值

  27. 27

    使用vba比较excel中的2个单元格

  28. 28

    连接Excel VBA中的单个单元格

  29. 29

    单元格公式替换中的Excel VBA错误1004

热门标签

归档