Передайте переменную используя Sendkey - PullRequest
0 голосов
/ 25 октября 2019

Я запускаю макрос для вызова экрана и ввода даты. Как передать переменную пользовательского ввода из VBA (дата) в поле BlueZone?

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

Sub RunReportUserDate()

Dim bzhao, WshShell As Object

Set WshShell = WScript.CreateObject("WScript.Shell")
myDate = InputBox("Enter Date", "mmddyy")

Set bzhao = CreateObject("BZWhll.WhllObj")
bzhao.Connect ""

bzhao.SendKey "<PF3>"
bzhao.WaitForString "0m" & Chr(27) & "[14;15H", 30
bzhao.SendKey "a"
bzhao.WaitForString Chr(27) & "[C", 30
bzhao.SendKey "r"
bzhao.WaitForString Chr(27) & "[C", 30
bzhao.SendKey "d"
bzhao.WaitForString Chr(27) & "[C", 30
bzhao.SendKey "a"
bzhao.WaitForString Chr(27) & "[C", 30
bzhao.SendKey "a"
bzhao.WaitForString "7H" & Chr(27) & "[16;15H", 30
bzhao.SendKey "<Enter>"
bzhao.WaitForString "er." & Chr(27) & "[6;36H", 30
bzhao.SendKey "<Tab>"
bzhao.WaitForString "er." & Chr(27) & "[6;52H", 30
bzhao.SendKey "<Tab>"
bzhao.WaitForString "rt." & Chr(27) & "[8;52H", 30
bzhao.SendKey "<Tab>"
bzhao.WaitForString "  " & Chr(27) & "[10;36H", 30
bzhao.SendKey "<Tab>"
bzhao.WaitForString "r." & Chr(27) & "[10;52H", 30
bzhao.SendKey "<Tab>"
bzhao.WaitForString "  " & Chr(27) & "[12;52H", 30


WshShell.SendKeys myDate

'bzhao.SendKey "<Numpad1>"
'bzhao.WaitForString "12;53H" & Chr(27) & "[0m", 30
'bzhao.SendKey "<Numpad0>"
'bzhao.WaitForString "[0;7m0" & Chr(27) & "[0m", 30
'bzhao.SendKey "<PF2>"
'bzhao.SendKey "<Numpad1>"
'bzhao.WaitForString "[0;7m1" & Chr(27) & "[0m", 30
'bzhao.SendKey "<Numpad9>"
'bzhao.WaitForString "[0;7m9" & Chr(27) & "[0m", 30
'bzhao.SendKey "<PF2>"
'bzhao.SendKey "<Numpad1>"
'bzhao.WaitForString "[0;7m1" & Chr(27) & "[0m", 30
'bzhao.SendKey "<Numpad9>"

Приглашение пользователядолжен захватить переменную, например, 101919 и ввести ее в поле даты BlueZone.

1 Ответ

0 голосов
/ 25 октября 2019
Sub RunARDAA()

Dim bzhao As Object

myDate = InputBox("Enter Date", "mmddyy")

Set bzhao = CreateObject("BZWhll.WhllObj")
bzhao.Connect ""

bzhao.SendKey "<PF3>"
bzhao.SendKey "ARDAA"
bzhao.SendKey "<enter>"
bzhao.SendKey "<tab>"
bzhao.SendKey "<tab>"
bzhao.SendKey "<tab>"
bzhao.SendKey "<tab>"
bzhao.SendKey "<tab>"

bzhao.SendKey myDate

bzhao.SendKey "<tab>"
bzhao.SendKey " "
bzhao.SendKey "<tab>"
bzhao.SendKey " "
bzhao.SendKey "<enter>"
bzhao.SendKey "<enter>"

bzhao.SendKey "<PF3>"
bzhao.SendKey "SPRRA"
bzhao.SendKey "<enter>"
bzhao.SendKey "<enter>"


End Sub

Нет необходимости объявлять другой объект, bzhao.sendkey распознает сохраненную переменную из VBA.

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