如果我在Excel VBE中打开了一些VB组件,其中一些文本突出显示,
有没有办法以编程方式抓取文本 “zBool”?
最好不要使用Sendkeys
6x New Zealand Steinlager Beers(一个很好的解决方案),另一个很好的解决方案
问:为什么黑羊比白羊少吃?答:因为没有那么多
答案 0 :(得分:6)
添加对“Microsoft visual basic for applications extensibility ...”的引用
Sub Tester()
Dim oVBE As vbe
Dim startLine As Long, startCol As Long
Dim endLine As Long, endCol As Long
Dim sContent As String, tmp As String, l As Long
Set oVBE = Application.vbe
oVBE.ActiveCodePane.GetSelection _
startLine, startCol, endLine, endCol
For l = startLine To endLine
tmp = oVBE.ActiveCodePane.CodeModule.Lines(l, 1)
If l = endLine Then tmp = Left(tmp, endCol - 1)
If l = startLine Then tmp = Right(tmp, (Len(tmp) - startCol) + 1)
sContent = sContent & IIf(Len(sContent) > 0, Chr(10), "") & _
tmp
Next l
Debug.Print sContent
End Sub
GetSelection方法: http://msdn.microsoft.com/en-us/library/aa443954(v=vs.60).aspx
请参阅此处了解如何使用返回的信息访问实际文本: http://www.cpearson.com/excel/vbe.aspx(我确定它在某处...)
编辑 - 为我自己的教育做了这件事...... 我会把它放在你的标签上; - )