我在excel中使用VBA范围存在一些问题:
dim frameRefPoint As String
frameRefPoint = "4,4"
range(Cells(frameRefPoint).Offset(0,0), Cells(frameRefPoint).Offset(7, 7)).Interior ...
这不符合我的预期。我认为指定的
Range(Cells(4,4).Offset(0,0))
中的第一个单元格应为“ D4”,但是当我在代码中使用范围时,范围的第一个单元格为“ D1”〜cells(1,4)。单元格的地址属性(frameRefPoint)返回$ D $ 1。我在这里想念什么?
最佳答案
您不能通过使用临时逗号将值连接在一起来跨越两个参数(例如.Cells(<row>, <column>)
)。只是使其看起来像您的代码与合法代码不同。但是,您可以对每个参数使用变量。
dim r as long, c as long, frameRefPoint As string
r = 4
c = 4
cells(r, c).resize(7, 7) = "this works"
frameRefPoint = "4,4"
'split the string on the comma and convert teh text-that-looks-numbers to actual numbers
cells(int(split(frameRefPoint, ",")(0))), int(split(frameRefPoint, ",")(1)).resize(7, 7) = "this also works"
关于excel - 范围(单元格(...工作不正确,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42739396/