ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 读取HTML下拉列表控件的所选值

读取HTML下拉列表控件的所选值

作者:绿色风 分类: 时间:2022-08-17 浏览:135
楼主
嘉昆2011
声明:
本文主体代码来自网络,7楼:
  1. http://www.vbaexpress.com/forum/showthread.php?44846-Value-from-embedded-ListBox-OLEObject

问题描述:
从网页复制粘帖内容时,经常会把HTML控件连带下载。然而所带来的问题是:
1,控件会耗费大量的资源,使打开文件速度缓慢;
2,控件使得数据不能进一步处理,如不能排序,不能加入数据透视表等。
那么如何读取HTML下拉列表控件的所选值,并删除控件呢?

解决思路:
在编辑模式下,点击该控件,查看Selected和DisplayValues的对照关系,即可得之相应控件的所选值。


 

代码:
  1. Sub test()
  2.     Dim o As OLEObject, n As Integer
  3.     n = 10
  4.     For Each o In Sheet1.OLEObjects
  5.         If o.progID = "Forms.HTML:Select.1" Then
  6.             Select Case o.Object.HTMLName
  7.                 Case "reason"
  8.                 Sheet1.Range("R" & n) = htmlSelectedValue(o)
  9.                 Case "info"
  10.                 Sheet1.Range("T" & n) = htmlSelectedValue(o)
  11.                 Case "black"
  12.                 Sheet1.Range("U" & n) = htmlSelectedValue(o)
  13.                 Case "check"
  14.                 Sheet1.Range("V" & n) = htmlSelectedValue(o)
  15.                 n = n + 1
  16.             End Select
  17.         End If
  18.     Next o
  19. End Sub

  20. Function htmlSelectedValue(h As OLEObject) As Variant
  21.     Dim s() As String, i As Integer
  22.     s() = Split(h.Object.Selected, ";")
  23.     i = PosInArray(True, s)
  24.     If i <> -1 Then htmlSelectedValue = Split(h.Object.DisplayValues, ";")(i - 1)
  25. End Function

  26. Function PosInArray(aValue, anArray)
  27.     Dim pos As Long
  28.     On Error Resume Next
  29.     pos = -1
  30.     pos = WorksheetFunction.Match(CStr(aValue), anArray, 0)
  31.     PosInArray = pos
  32. End Function

动画操作:


 


附件:

样板.rar



推荐阅读:
  1. http://www.get-digital-help.com/2011/12/21/working-with-combo-boxes-form-control-using-vba/


2楼
水星钓鱼
学习了
3楼
老糊涂
学习了

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap