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

我想在我的Excel VBA Macro中计算一个,然后单元格正在更改1个起始单元格:Sheet2!$ A1 - > next 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)

2 years ago

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"

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

2 years ago

使用双引号时,将字符串传递给函数(在本例中为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 years ago

另一种方法是使用 Offset()

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