如何创build脚本以从Excel复制单元格并粘贴到位于浏览器上的文本框中

在工作中,我们必须通过在线应用程序通过vb.net进行跟踪。 要将所需的信息input到文本框和下拉框中,您必须处理多个页面。 必须input或者甚至复制和粘贴所需的信息是很麻烦的。

我希望能够在Excel中将信息input到一个页面上,然后让脚本能够自动复制并粘贴到浏览器屏幕上的文本框中,而无需执行复制和粘贴操作。

这可能吗? 任何人都可以指向正确的方向吗?

我注意到,当你尝试创build一个电子邮件帐户,他们总是有一个框,你必须input字母扭曲。 我认为这是因为有些应用程序可以自动粘贴或写入浏览器屏幕上的文本框。

任何帮助指出我正确的方向将是伟大的。

据我所见,你想要什么是一些第三方脚本或Excel工作表中的VBA脚本来为你做复制/粘贴。

我能告诉你什么都行不通,就是试着让浏览器做这个工作。 浏览器可以做什么和不可以做什么有很多限制,主要是阻止访问您计算机上的数据。 这包括从Excel电子表格复制。

我认为你可以做的是build立一个非常严格的Windows Shell脚本。 使用SendKeys函数,您可以执行一组按键,就像您自己完成一样。

你可以让脚本做这样的事情:

  1. 激活Excel的窗口
  2. 移至您想要复制的第一个单元格。 (通过使用箭头键)
  3. 复制它。 (通过使用CTRL-INSERT)
  4. 激活VB.NET窗口
  5. 移到你从第一个单元格插入数据的地方。 (反复使用TAB。)
  6. 粘贴它。 (通过使用SHIFT-INSERT)

我必须警告你,如果有什么不合适的地方,这样的脚本将会失败 – 当前的光标位置是错误的,每个窗口的文本已经改变了,等等。

这是一个例子:

 Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.AppActivate "the-exact-text-in-the-titlebar-of-Excel" WScript.Sleep 50 WshShell.SendKeys "{RIGHT}" WshShell.SendKeys "{RIGHT}" WshShell.SendKeys "{DOWN}" WshShell.SendKeys "^{INSERT}" WshShell.AppActivate "the-exact-text-in-the-titlebar-of-vb.net-browser-window" WScript.Sleep 50 WshShell.SendKeys "{TAB}" WshShell.SendKeys "{TAB}" WshShell.SendKeys "{TAB}" WshShell.SendKeys "+{INSERT}" 

该示例假定:

  1. 要从Excel复制的单元格位于Excel中当前光标位置右侧的第2列中,并向下一行。
  2. 以vb格式粘贴的地方是浏览器中当前光标位置的第三个控件。

除了@ scraimer的SendKeys之外,我想不出有什么特别的方法来完成你所要求的。 把他的警告的心,SendKeys是非常棘手的做可靠。

获得相同最终结果的另一种可能性是将.aspx更改为接受GETvariables,并在PageLoad()上预填充其字段,您可能有3个variables填充名称,公司和消息;

 http://www.mysite.com/myform.aspx?var1=JoeBolgs&var2=Company+XYZ&var3=Help+me+please 

然后在VBA中创build一个表单或表单,用户可以填写var1 – > var3

 // obviously make your var names nicer than mine :) myUrl = "http://www.mysite.com/myform.aspx?" myUrl = myUrl & "var1=" & strVar1 myUrl = myUrl & "&var2=" & strVar2 myUrl = myUrl & "&var3=" & strVar3 OpenBrowserURL(myUrl) 

并有一个OpenBrowserURL()例程

 Sub OpenBrowserURL(strURL As String) ActiveWorkbook.FollowHyperlink Address:=strURL, NewWindow:=True End Sub 

我使用类似的东西,通过菜单调用帮助页面,它工作的一种享受。 用户点击一个菜单,VBA用户喜欢的浏览器打开一个包含一些数据的URL。

我唯一以编程方式与VBA交互的方式是通过直接调用wininet.dll来获取和POST数据。 虽然不认为这会帮助你的问题。

最后一个想法是,如果你想阻止人们以某种​​方式游戏你的网站,你应该encryption你的变数。 这不是难以encryption然后UUEncode数据和发送作为请求variables。 然后只是URL解码,并使用您用来encryption它的同一个algorythm在服务器上解密它。

祝你好运。

join两个Excel工作表+一个Excel单元格更改+更改另一个工作表在vb.net源