【问题标题】:Cannot fill text box in internet explorer via VBA无法通过 VBA 在 Internet Explorer 中填充文本框
【发布时间】:2020-09-28 06:47:45
【问题描述】:

我用IE.Document.getelementbyID("tinymce").value= "test"

Element = IE.Document.getelementbyid("tinymce") 测试在本地窗口中显示null

无法通过 vba 在 Internet Explorer 上的此文本框中输入文本

Iframe

【问题讨论】:

  • HTML 是一种可以用来表达如何编写代码的指令的语言。 IE.Document 是包含此类说明的文档。您可以使用文本编辑器对其进行编辑。将一个元素视为此类文档的一段。因此,您下载的不是文本框,而是另一个可以解释 HTML 的程序如何创建文本框的说明。您可以阅读和修改说明,但您离文本框很远。
  • 除了 Variatus 写的。您展示了一个位于 iFrame 内的 HTML sn-p。这意味着您正在处理在加载您指定的 URL 之后加载的 HTML 文档。所以你必须使用.document.frames并通过它的索引引用正确的iFrame,然后访问里面的文档。
  • @Variatus 嗯,不确定我是否关注。这个 VBA 东西有点新。你在说的是那里的代码是(可能使用)HTML如何创建文本框的。所以我引用我的代码的那张脸是完全没用和不相关的。在这种情况下,您对我如何引用文本框并用我的 excel 中的信息填充它有什么建议吗?
  • 请解决您的问题。不清楚是要修改网络上的文本框,还是要在工作表中添加文本框。
  • 根据您的描述,我了解到您希望为网页上的文本框赋值。在您的 VBA 代码中,您试图设置具有 id tinymce 的元素的值。如果您看到您的 HTML 代码,那么您会注意到它是一个正文标签,而不是一个文本框。所以你不是指文本框。我建议您右键单击文本框并选择 Inspect element 选项。它将带您到该文本框的代码。正确定位该元素可能会有所帮助,然后您可以尝试修改您的 VBA 代码。

标签: excel vba internet-explorer


【解决方案1】:

根据图片,我了解到您想为该邮件设置邮件正文。如果我错了,请纠正我。我建议您尝试参考此代码示例,这可能有助于在消息正文中设置文本。

Sub demo()

    Dim IE As Object
    Dim Doc As HTMLDocument
       
    Set IE = CreateObject("InternetExplorer.Application")
    IE.Visible = True
    IE.navigate "http://Your_URL_here..."

    Do While IE.Busy
        Application.Wait DateAdd("s", 1, Now)
    Loop

    Set Doc = IE.document
    Set frame = Doc.frames("messageBody_ifr").document
    Set para = frame.getElementsByTagName("p")(0)
    para.innerHTML = "This is my sample text..."
     
End Sub

【讨论】:

    猜你喜欢
    • 2012-02-19
    • 2014-11-03
    • 1970-01-01
    • 2015-02-13
    • 2013-09-22
    • 2015-02-03
    • 2020-05-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多