【问题标题】:How to Manipulate DropDownBox Names in an HTA File using VBScript如何使用 VBScript 操作 HTA 文件中的下拉框名称
【发布时间】:2014-05-14 04:02:41
【问题描述】:

我正在使用 VBScript 创建一个 HTA 文件,该文件创建、写入和读取 Excel 文件。基本上,Excel 文件将是一个包含“网站名称、登录名和密码”(最终加密)的数据库,而 HTA 只是提供了一个界面,以便在文本框中轻松查看该信息。

我想创建一个“下拉框”,其中预填充了当前存储在 Excel 文件中的所有帐户。这样当用户选择账户名时,就会显示相应的登录名和密码。

下拉框的典型代码:

<select size="1" name="DropDownBox" onChange="ReadDropdown">
    <option value="0"></option>
    <option value="1">Account 1</option>
    <option value="2">Account 2</option>
    <option value="3">Account 3</option>
</select>

我希望程序读取当前存储在 Excel 文件中的“网站名称”,而不是查看“帐户 1...2...3 等”,并在下拉框中使用这些名称。

例子:

<select size="1" name="DropDownBox" onChange="ReadDropdown">
    <option value="0"></option>
    <option value="1">Facebook</option>
    <option value="2">GMAIL</option>
    <option value="3">Stack Over Flow</option>
</select>

我无法提前指定名称,因为我不知道 Excel 文件中将包含哪些帐户。我假设我可以修改下拉框选项的“值”,但这不会改变用户实际看到的文本(例如在文本框中)。


我确实想出了一个“有趣”的想法。如果我创建了第二个 HTA 文件来充当“加载程序”怎么办。 Loader HTA 程序将执行以下操作:

  • 打开 Excel 程序查看文件中当前有哪些网站帐户
  • 打开主 HTA 文件并使用 Excel 文件中的帐户名称对其进行编辑,然后保存。
  • 然后运行新保存的主 HTA 文件
  • 并关闭自身(加载程序 HTA)

只是一个想法。

【问题讨论】:

标签: excel vbscript hta


【解决方案1】:

3 个步骤。

  1. 创建空跨度并在您想查看下拉框的位置为其分配 ID

    &lt;span id=<strong>MyDropdownBox</strong>&gt; &lt;span&gt;

  2. 创建一个 Sub 以从 Excel 中读取值并用 HTML 代码填充您的空白范围。代码的 HTML 部分应该在引号内,而变量不在。而且我猜你必须将它放在一条线上以获得更高的可靠性!

    Sub DisplayDropdownBox() '// Your code to get the values from Excel and assign to variables. '// Then fill the empty span with dropdown list with values you got. MyDropDownBox.InnerHTML = "<select size='1' name='DropDownBox' onChange='ReadDropdown'> <option value="0"></option> <option value="1">"Var1"</option> <option value="2">"var2"</option> <option value="3">"Var3"</option> </select>" End Sub

  3. 把这种代码放在你的VBscript的开头,每次运行或刷新hta窗口时都会调用它 Sub Window_onLoad DisplayDropdownBox() End Sub

PS:我很难格式化这个文本,所以如果有人想改进格式,可以尝试这样做。您也可以在原始文本文件 myanswer.txt

中查看我的答案

【讨论】:

    【解决方案2】:

    感谢您的回复。

    @ilo 我在获取您的答案时遇到了问题,但最终想通了。我必须在第 2 步中对您的代码进行一些更改。这是最终的工作结果:

    MyDropDownBox.InnerHTML = "<select size='1' name='DropDownBox' onChange='ReadDropdown'> <option value="0"></option> 
    <option value=" & 1 & ">" & Var1 & "</option> 
    <option value=" & 2 & ">" & var2 & "</option> 
    <option value=" & 3 & ">" & Var3 & "</option>
    </select>" 
    End Sub
    

    ** ilo 的第 1 步和第 3 步仍然需要。

    我最终修改它以适应我自己的代码,但我把它留在这里,作为一个通用示例,供任何可能觉得这很有帮助的人使用。

    @ilo - 我打算将您的回复标记为答案,但由于我需要在添加值和变量时使用“&”符号进行一些小的更改,我想我会自己重写它。但是我完全相信你的答案,所以谢谢你。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-27
      • 2012-06-11
      • 1970-01-01
      • 2013-11-21
      • 1970-01-01
      • 2019-01-12
      • 2017-11-18
      • 2011-12-25
      相关资源
      最近更新 更多