Как создать скрипт для копирования ячейки из Excel и вставки в текстовое поле, расположенное в браузере - PullRequest
0 голосов
/ 12 апреля 2009

На работе мы должны отслеживать наши звонки через онлайн-приложение, сделанное через vb.net. Чтобы ввести необходимую информацию в текстовые поля и выпадающие списки, вам нужно иметь дело с более чем одной страницей. Трудно набирать или даже копировать и вставлять необходимую информацию.

Я хочу иметь возможность печатать информацию на одной странице в Excel, а затем иметь возможность автоматически копировать и вставлять текстовые поля, расположенные на экране браузера, без необходимости выполнять копирование и вставку.

Возможно ли это? Кто-нибудь может указать мне правильное направление?

Я заметил, что когда вы пытаетесь создать учетную запись электронной почты, у них всегда есть одно поле, в которое вы должны набирать волнистые буквы. Я предполагаю, что это потому, что есть приложения, которые могут автоматически вставлять или записывать в текстовое поле, расположенное на экране браузера.

Любая помощь, указавшая меня в правильном направлении, была бы великолепна.

Ответы [ 3 ]

1 голос
/ 12 апреля 2009

Я не могу придумать какой-либо конкретный способ, кроме SendKeys @ scraimer, чтобы сделать именно то, что вы просили. Примите его предупреждения близко к сердцу, SendKeys очень сложно сделать надежно.

Другая возможность получить тот же конечный результат - изменить ваш .aspx для принятия переменных GET и предварительно заполнить его поля в PageLoad (). У вас может быть 3 переменные, которые заполняют имя, компанию и сообщение;

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

Затем в VBA создайте форму или лист, который пользователь может заполнить 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 напрямую для получения данных GET и POST. Хотя не думаю, что это поможет в вашем вопросе.

Еще одна мысль: если вы хотите как-то остановить людей, играющих на вашем сайте, вам следует зашифровать свои переменные. Нетрудно зашифровать UUE, закодировать данные и отправить их как переменную запроса. Затем просто зашифруйте его и расшифруйте на сервере, используя тот же алгоритм, который вы использовали для его шифрования.

Удачи.

1 голос
/ 12 апреля 2009

Насколько я понимаю, вам нужен какой-нибудь сторонний скрипт или скрипт VBA на листе Excel, чтобы сделать для вас копирование / вставку.

То, что я могу вам сказать, будет не работать, это попытаться заставить браузер работать. Существует множество ограничений на то, что браузер может и не может делать, и они в основном включают в себя запрет доступа к данным на вашем компьютере. Это включает в себя копирование из таблиц Excel.

Я думаю, что вы можете сделать это создать очень жесткий скрипт Windows Shell. Используя функцию SendKeys, вы можете выполнить набор нажатий клавиш точно так же, как если бы вы делали их самостоятельно.

Вы можете заставить скрипт сделать что-то вроде этого:

  1. Активировать окно Excel
  2. Переместитесь в первую ячейку, которую хотите скопировать. (С помощью клавиш со стрелками.)
  3. Скопируйте это. (С помощью CTRL-INSERT)
  4. Активировать окно VB.NET
  5. Переместитесь в место, куда вы вставляете данные из 1-й ячейки. (Использование 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 находится во 2-м столбце справа от текущей позиции курсора в Excel и на одну строку вниз.
  2. Место для вставки в форме vb является 3-м элементом управления от текущей позиции курсора в браузере.
0 голосов
/ 06 мая 2009

объединение двух листов Excel + замена ячейки Excel + изменение другого листа в vb.net с источником

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...