使用 VBA 处理 Excel 中的单元格地址

使用 VBA 处理 Excel 中的单元格地址

我有一张 Excel 工作表,里面有多个表格。这些表格看起来都一样,而且它们之间的单元格也完全相同。它们按 4 x 3 的顺序排列:

x x x x
x x x x
x x x x

x x x x
....

它们共有 60 个,并且三列之间间隔两个单元格,而不是一个。

现在我的问题来了。

如果我有第一个表单的左上角地址,我该如何“生成”下一个表单的下一个地址?

从第一个左上角到下一个左上角有 9 个字段的空间。从第一个表单的第一个左上角到底部的下一个表单有 17 个字段。

答案1

您可以使用OFFSET 函数

OFFSET(参考,行,列,[高度],[宽度])

  • 引用必需。要作为偏移量基础的引用。引用必须引用单元格或相邻单元格区域;否则,OFFSET 将返回 #VALUE! 错误值。
  • Rows 必需。您希望左上角单元格引用的行数(向上或向下)。使用 5 作为 rows 参数指定引用中的左上角单元格位于引用下方五行。Rows 可以是正数(表示在起始引用下方)或负数(表示在起始引用上方)。
  • Cols 必需。您希望结果的左上角单元格引用的左侧或右侧的列数。使用 5 作为 cols 参数指定引用中的左上角单元格位于引用右侧五列。Cols 可以是正数(表示在起始引用的右侧)或负数(表示在起始引用的左侧)。

[编辑]如果您有合并单元格,您可以考虑使用 MergedArea(VBA),如下所示:

Set MA = Range("G14").MergeArea
NewAddress = MA.Offset(...)

相关内容