2016-04-18 11 views
1

Ich versuche, ein Makro zu schreiben, das es einem Benutzer ermöglicht, eine neue Banknotenseriennummer einzugeben. Das Makro benötigt 3 Eingaben (Währung, Nennwert und Seriennummer). Ich bin ein Anfänger zu VBA, aber der Code, den ich versuchte zu schreiben, ist unten. Kann jemand darauf hinweisen, wo ich falsch gelaufen bin oder was geändert werden muss, damit es funktioniert? Vielen Dank!Zellen in VBA definieren

Sub TestSub() 
Dim Note_Serial As Variant 
Dim Note_Currency As Variant 
Dim Note_Denomination As Variant 
'Defining 3 inputs 

Note_Currency = InputBox("Enter Currency (in 3 letter form):") 
Note_Denomination = InputBox("Enter Note Denomination (with $ sign):") 
Note_Serial = InputBox("Enter Serial Number:") 
'Getting 3 inputs 

Dim Currency_Cell As Range 
Dim Denomination_Cell As Range 
Dim Serial_Cell As Range 
'Defining cells to write inputs 

Currency_Cell = (D3) 
Denomination_Cell = (E3) 
Serial_Cell = (F3) 
'Starting cells 

Currency_Cell = Note_Currency 
Denomination_Cell = Note_Denomination 
Serial_Cell = Note_Serial 
'Writing inputs to spreadsheet 

Currency_Cell.Offset (1) 
Denomination_Cell.Offset (1) 
Serial_Cell.Offset (1) 
'Moving all cells down 1 place 
End Sub 

Antwort

2

Statt zu schreiben Currency_Cell = (D3), wollen Sie schreiben Set Currency_Cell = Range("D3") (Unter der Annahme, dass Sie nicht das aktive Arbeitsblatt wechseln).

EDIT: Um zu verhindern, zuvor eingegebenen Daten zu überschreiben, verwenden Sie stattdessen:

Set Currency_Cell = Cells(Rows.Count, Range("D3").Column).End(xlUp).Offset(1, 0) 

Dies wird die erste leere Zelle in Spalte D. wählen

Um den Zellbezug zu bewegen, haben Sie auch die verwenden Set Schlüsselwort, und geben Sie den Offset in Zeilen und Spalten:

Set Currency_Cell = Currency_Cell.Offset (1, 0) 
+0

Vielen Dank! Die Eingaben funktionieren jetzt und schreiben in die richtigen Zellen. Wenn ich jedoch eine zweite Note eingabe, überschreibt es die erste Note. Kannst du erklären, warum das passiert? Nochmals vielen Dank – 1937827

+0

Das liegt daran, dass Sie immer in Zeile 3 beginnen und zuvor geschriebene Daten überschreiben. Ich habe meine Antwort aktualisiert, um das zu verhindern. – Verzweifler

Verwandte Themen