使用Excel单元格中的定义值计入VBA(Excel)

时间:2017-01-13 14:37:36

标签: excel vba excel-vba

我想在我的Excel VBA Macro中计算一次,所以单元格正在改变+1起始单元格:Sheet2!$ A1 - >下一个Cell Sheet2!$ A2

在我的工作表1中,我有一个以1开头的单元格,并通过单击按钮1(Sheet1中的单元格A1)来计数。

我的想法:

Sheets("Sheet2").Range("Sheet2!A Sheets("Sheet1").Range(Sheet1!A1).Value = "MY Input"

应该是这样的:

Sheets("Sheet2").Range("Sheet2!A Sheet1!A1).Value = "MY Input"

但它不起作用。任何想法?

3 个答案:

答案 0 :(得分:2)

Sheets("Sheet2").Range("A" & Sheets("Sheet1").Range("A1").Value).Value = "My Input"

首先定义值并使用:

Dim r as long

r = Sheets("Sheet1").Range("A1").Value

Sheets("Sheet2").Range("A" & r).value = "My Input"

我认为这就是您的意思,如果没有,请提供更清晰的解释,我会相应地编辑答案。

答案 1 :(得分:0)

使用双引号时,将字符串传递给函数(在本例中为Range函数),但Range函数仅显式接受“A1”和R1C1 / [R] 1 [C] 1形式的地址符号。

Sheets("Sheet2").Range("A1").Value = Sheets("Sheet1").Range("A1").Value

不确定您是否希望使用按钮实现,但为什么不尝试:

Sheets("Sheet1").Range("A1").Value = Sheets("Sheet1").Range("A1").Value + 1

每次执行此行时,单元格A1的值都会增加1.

答案 2 :(得分:0)

另一种方法是使用Offset()

Sheets("Sheet2").Range("A1").Offset(Sheets("Sheet1").Range("A1")).Value = "My Input"