2009-05-29 15 views
1

Ich benutze Excel 2003 und ich muss ein Makro erstellen fragt den Benutzer für 5 Eingaben: Datum, Projektnummer, Fehler, Problem und Lösung. Ich habe noch nie Makros verwendet, daher habe ich keine Ahnung, wie ich das programmieren soll. Sobald die Daten vom Benutzer eingegeben wurden, möchte ich, dass sie in die entsprechenden Spalten gehen. Nachdem dies erledigt ist, fordert das Makro den Benutzer nicht zu einer weiteren Eingabe auf, bis das Makro erneut ausgeführt wird.Machen Sie Makro zur Eingabe von Daten in Excel-Tabelle

Antwort

2
Sub TestMacro() 
    Range("A2").Select 
    ActiveCell.FormulaR1C1 = InputBox("Date") 
    Range("B2").Select 
    ActiveCell.FormulaR1C1 = InputBox("Project #") 
    Range("C2").Select 
    ActiveCell.FormulaR1C1 = InputBox("Fault") 
    Range("D2").Select 
    ActiveCell.FormulaR1C1 = InputBox("Problem") 
    Range("E2").Select 
    ActiveCell.FormulaR1C1 = InputBox("Solution") 
End Sub 
+0

Vielen Dank, das für die Eingabe der Werte in die aktuelle Zeile funktioniert hat, aber wie würde ich die nächste Reihe von Werten in die nächste Zeile darunter gehen, so dass keine Werte überschrieben werden. Vielen Dank –

0

Um die aktive Zelle bis a3 (das heißt, die nächste Zeile darunter, wie Sie fragen) bewegen Sie mit dieser:

ActiveCell.Offset(1, -4).Select 
+0

Dies scheint nicht zu bewegen, um es in die nächste Zeile, im Grunde möchte ich das Makro durch die 5 Eingänge laufen und dann geben Sie die Daten und zu laufen, und wenn das Makro das nächste Mal auf dem nächsten gestartet wird rudern. –

+0

Ich habe das Minuszeichen auf einer der Zahlen vergessen, aber das habe ich jetzt behoben. – paulmorriss

1

Es gibt eine eingebaute Möglichkeit, dies zu tun. Setzen Sie Ihre Spaltenüberschriften in Zeile 1 eines Excel-Blatt, wählen Sie Zelle A1, dann gehen Sie auf Form

Dies kann eine restriktive Lösung sein, wie Sie ein Feld auf der Grundlage eines anderen nicht füllen können (Geben Sie zB eine Liste der Probleme an, die vom gewählten Fehler abhängen). Wenn Sie nur etwas schnell und einfach brauchen, dann ist es die Aufgabe

2

Wenn Sie das Makro zu starten, diesen Code, bevor Sie etwas tun:

Dim i As Integer 

Range("a1").Select 
Range(Selection, Selection.End(xlDown)).Select 
i = Selection.Rows.Count 

Dies setzt voraus, dass Sie immer einen gewissen Wert in ‚A1‘ haben und dass es keine leeren Zeilen gibt, bis Sie das Ende der gültigen Zeilen der eingegebenen Daten erreicht haben.

An diesem Punkt haben Sie den Wert "i", der gleich der Anzahl der Zeilen ist, die bereits Daten enthalten.

Dann können Sie Christian Payne obigen Code verwenden, aber ändern die

Range("A2").Select 

zu

Cells(i + 1, 1).Select 

Dieses Makro ermöglicht Daten in die nächste leere Zeile unterhalb Ihre bereits vorhandenen Daten zu platzieren.

0

Würde so etwas tun, was Sie brauchen?

Verwandte Themen