2016-12-05 6 views
0

Ich schreibe ein Makro, das zwei Gruppen von Werten vergleicht und den Benutzer warnt, wenn irgendwelche Unterschiede vorhanden sind. Wenn ein Unterschied gefunden wird, möchte ich, dass der Benutzer seinen Kommentar eingibt. Um es ihnen leicht zu machen zu verstehen, worum ich gebeten habe, möchte ich alle Zahlen in der InputBox anzeigen, die ich verwende, um den Kommentar zu erhalten. Beispiel InputBox Ich mag folgende Art und Weise könnte bekommen aussehen:Tabelle in einer MsgBox

Difference between warehouse and accounting records! See details below, insert reason. 

Product: Toyota Corolla 

------------------------------ 
|Item |Warehouse|Accounting| 
------------------------------ 
|Wheel |  3|   3| 
------------------------------ 
|Engine |  2|   3| 
------------------------------ 
|Door |  7|   7| 
------------------------------ 
|Gearbox|  5|   5| 
------------------------------ 
|Roof |  4|   3| 
------------------------------ 

In diesem Fall wird der Alarm durch unterschiedliche Werte für Dach und Motor verursacht. Die Zahlen, die die Tabelle füllen, werden in Variablen gespeichert. Wie man solche Tabelle bildet, die dem Benutzer klar wird, der den Kommentar eingeben muss?

+0

Man könnte es auf diese Weise versuchen: http://stackoverflow.com/questions/28190915/display-a-table-in-the-userform-by-extracting-from-excel-sheet –

+0

@Jordan haven Ich habe es nicht oft versucht, als ich am Anfang mehr oder weniger richtig feststeckte. Nach Hilfe gesucht, aber alles, was ich finden konnte, war, eine Tabelle anzuzeigen, die Teil Ihrer Arbeitsmappe ist, und nicht eine komplett neue zu erstellen. –

+4

Warum nicht ein Benutzerformular erstellen? Wenn Sie es vorher nicht getan haben, ist es wirklich nicht so viel Arbeit (und Tutorials sind leicht zu finden). Eingabe-/Meldungsfelder sind nicht die besten, wenn Sie dem Benutzer formatierte Daten anzeigen müssen. –

Antwort

2

Nach etwas mehr Forschung fand ich, dass der Schlüssel Befehl I vbTab

Der Code unten gibt ein Eingabefeld mit Tisch schön genug formatiert für eine klare Darstellung der Daten war fehlte.

Sub TestMsg() 
    Dim testcom As String 
    testcom = InputBox("Enter answer" & vbNewLine & "axx" & vbTab & "b" & vbNewLine & "c" & vbTab & "xxd") 
    MsgBox testcom 
End Sub 
+1

Dies ist eine nette, schnelle und schmutzige Lösung. Wenn es für andere bei der Arbeit zu verwenden ist, würde ich empfehlen, es zu optimieren, vielleicht als Benutzerformular. Es ist immer schön ein bisschen professionell zu sein. –