2009-05-18 8 views
0

Ich arbeite an einem Projekt bei der Arbeit, das im Grunde Screen Scraping macht. Ich verwende VBA, um ein anderes System zu steuern, das auf Eingaben basiert, die in einer Tabelle gespeichert sind. Das Problem, auf das ich stoße, ist, dass bestimmte Felder ein + vom Nummernblock als Feld-Ausgangszeichen erfordern.Wie sende ich + vom Nummernblock in Excel/VBA?

Ich habe kein Problem mit der SendKeys-Funktion, um die anderen Felder auszufüllen, aber für das Leben von mir, in jeder der Forschung, die ich getan habe, kann ich nicht herausfinden, wie das + spezifisch übergeben. Hat jemand das tun müssen? Ich habe das Gefühl, es gibt etwas Einfaches, das ich nicht bekomme ...

Antwort

0

geschweiften Klammern nicht arbeiten?

SendKeys I & "{+}", True 
0

Zurück in einem anderen Leben schrieb ich ein Programm PushKeys genannt, die um die Grenzen des VB Sendkeys Befehl bekam aber war Syntax kompatibel und hatte ein paar andere Funktionen (wie Sleep, Numpad-Tasten). Meine Website, auf der es war, ist nicht mehr auf, aber zum Glück hat jemand meine PushKeys program here archiviert.

Es gibt Varianten für VB, Delphi, C, usw. Die VB sollte in VBA ziemlich einfach funktionieren.

0

Ich konnte AutoIT für einige MS Office VBA-Projekte verwenden, bei denen Tastatur- oder Mauseingabe die einzige Möglichkeit war, z. B. wenn MS Office keine Objekte im Objektmodell, sondern in der GUI verfügbar macht.

In AutoIT Skript sollte diese Arbeit die + Taste auf dem Ziffernblock eingeben:

Send("{NUMPADADD}") 

Sie einen AutoIT Skript (* .au3) Textdatei kompilieren können eine EXE-Datei zu erstellen, die Sie von VBA ausführen können :

Dim RetVal As Variant 
RetVal = Shell("YourAutoITscript.exe") 

können Sie AutoIT bei www.autoitscript.com finden