范围(单元格...工作不正常

002*_*253 2 excel vba range excel-vba

我在excel中使用的VBA范围有点问题:

dim frameRefPoint As String

frameRefPoint = "4,4"
range(Cells(frameRefPoint).Offset(0,0), Cells(frameRefPoint).Offset(7, 7)).Interior ...
Run Code Online (Sandbox Code Playgroud)

这不符合我的预期.我认为指定的第一个单元格Range(Cells(4,4).Offset(0,0))应该是"D4",但是当我在代码中使用该范围时,该范围的第一个单元格是"D1"〜单元格(1,4).

单元格的地址属性(frameRefPoint)返回$ D $ 1.我在这里错过了什么?

小智 5

您不能通过.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"
Run Code Online (Sandbox Code Playgroud)