合并仅用变量引用的连续单元格

Merge consecutive cells referenced with variables only

我想合并 VBA macro/module 中一行的 4 个连续单元格。但是,我只允许使用引用起始单元格的变量 and/or 任何其他单元格(当然,只有需要合并的单元格才是重要的——关键是在任何阶段,我不喜欢使用单元格地址,因为它最终将在 Do-While 循环中使用)。

我尝试了多种方法,但none return 想要的合并。这是我尝试过的(注意- D 是我引用的单元格的变量)

Range(D, D.Offset(0, 1)).merge
Range(D & D.Offset(0, 2)).merge
Range(D & D.Offset(0, 3)).merge

这个 return 没有错误,只是合并了两个连续的单元格。另一方面,下面的一个,我发现它是多个站点上的解决方案,但它 returns “运行-time error: 1004 Method 'Range' of Object'_Global' failed” , 导致没有合并并且循环提前结束。

Set E= D.Offset(0,3)
Range(D & ":" & E).merge

D 已正确设置和定义,因为循环与注释掉的合并命令一起工作。 VBA 最近才开始编码,任何帮助都会很棒!

有很多种方法,我建议使用Range.Resize方法。

假设 D 包含正确的单元格(顺便说一句,您应该考虑使用更好的名称),只需使用

D.Resize(1, 4).Merge

Resize 方法将 return 一个具有 1 行高和 4 个单元格宽度的范围,而 Merge 将简单地合并所有单元格。

尝试使用第二个范围变量来保存最后一个单元格也是有效的,但是您使用了错误的语法。要从开始单元格和结束单元格创建范围,将这两个单元格作为参数传递。

Set E = D.Offset(0, 3)
Range(D, E).Merge
' Same could be done with one line:
Range(D, D.Offset(0, 3)).Merge