2016-04-18 8 views
1

新しい銀行券のシリアル番号を入力できるマクロを作成しようとしています。マクロには3つの入力(通貨、金種、シリアル番号)が必要です。私はVBAの初心者ですが、私が書こうとしたコードは以下の通りです。誰かが私が間違っていた場所を指摘できますか、それを機能させるために何を変更する必要がありますか?ありがとう!VBAでのセルの定義

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 

答えて

2

代わりのCurrency_Cell = (D3)を書いて、あなたは(あなたがアクティブなワークシートを切り替えるしていないと仮定すると)Set Currency_Cell = Range("D3")を書きたいです。

EDITは:

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

これは、列の最初の空のセルを選択します

D.

をセル参照を移動するには、あなたも使用する必要があります:代わりに使用して、以前に入力されたデータを上書きしないようにするには Setキーワードを使用し、行と列にオフセットを指定します。

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

ありがとうございます!入力が正しく機能し、正しいセルに書き込みます。しかし、2番目の音符を入力すると、最初の音符が上書きされます。なぜこれが起こっているのか説明できますか?もう一度おねがいします – 1937827

+0

これは、常に3行目から始まり、以前に書き込まれたデータを上書きするためです。私はそれを防ぐために私の答えを更新しました。 – Verzweifler

関連する問題