如何使用VBScript处理HTA文件中的DropDownBox名称

时间:2014-05-14 04:02:42

标签: excel vbscript hta

我正在使用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>

而不是查看&#34;帐户1 ... 2 ... 3等&#34;我希望该计划能够阅读&#34;网站名称&#34;目前存储在Excel文件中,而是在下拉框中使用这些名称。

示例:

<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文件中将包含哪些帐户。我假设我可以修改&#34;值&#34;下拉框选项,但不会更改用户实际看到的文本(例如在文本框中)。


我想出了一个&#34;有趣的&#34;理念。如果我创建第二个HTA文件以充当&#34; Loader&#34;该怎么办? Loader HTA程序将执行以下操作:

  • 打开Excel程序,查看网站帐户当前在文件中
  • 打开主要HTA文件并使用Excel文件中找到的帐户名称对其进行编辑,然后保存。
  • 然后运行新保存的主HTA文件
  • 并关闭本身(The Loader HTA)

只是一个想法。

2 个答案:

答案 0 :(得分:0)

3个步骤。

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

    <span id=MyDropdownBox> <span>

  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

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

    中查看我的答案

答案 1 :(得分:0)

感谢您的回复。

@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 - 我打算将你的回复标记为答案,但因为我需要对使用&#34;&amp;&#34;进行微小的更改。添加值和变量时的符号,我想我会自己重写它。但是,我给你答案的全部功劳,谢谢你。