在VBA中定义单元格

时间:2016-04-18 10:14:37

标签: excel vba excel-vba

我正在尝试编写一个允许用户输入新钞票序列号的宏。该宏需要3个输入(货币,面额和序列号)。我是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

1 个答案:

答案 0 :(得分:2)

您想要编写Currency_Cell = (D3)(假设您没有切换活动的工作表)而不是编写Set Currency_Cell = Range("D3")

编辑:要防止覆盖先前输入的数据,请改为使用:

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

这将选择D列中的第一个空单元格。

要移动单元格引用,您还必须使用Set关键字,并以行和列的形式给出偏移量:

Set Currency_Cell = Currency_Cell.Offset (1, 0)