Excel VBA 需要使用相对单元格地址。

7
我需要相对单元格地址,例如"A2"而不是"$A$2"。
当我使用myAddress = Worksheets("Sheet1").Cells(1, 2).Address时,myAddress会返回$B$2。实际上,我需要相对值B2
你问为什么?我知道你会问...因为我想使用B2单元格地址将公式向下填充到它下面的所有单元格。而且我不希望每个后续单元格都引用B2,而应分别引用C2D2等。
1个回答

17
myAddress = Worksheets("Sheet1").Cells(1, 2).Address(False, False)

1
谢谢!这和键入.Address(0,0)是一样的吗? - Kevin Scharnhorst
5
效果将是一样的,但如果我的团队中有人这样做,我会扇他们耳光。 - GSerg
3
@phillipsK 因为如果一个参数接受一个 boolean,就该传递一个布尔值,而不是可能被转换成布尔值的数字。你可以向同一个方法传递 42 而不是 True,看起来也是合适的。唯一达到的效果就是让下一个人想一想为什么要传递 42 而不是 True,以及是否这样做会有与仅传递 True 不同的效果。 - GSerg
1
@GSerg 计算机更容易解释数字还是字符/字符串? - phillipsK
2
@phillipsK 对于计算机而言,字符串是一系列字节(数字)。然而,在这个例子中,首先没有字符串。False不是一个字符串,就像"False"一样。计算机在这里的额外工作是检测传递的VARIANT不是类型为VT_BOOL,并调用等同于CBool()的道德等效物。 - GSerg
显示剩余6条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接