如何创build一个可以更改单元格所在行的excelmacros

我正在将表格粘贴到SAS中,第一列中单元格所跨行的行数是可变的。 也就是说有时第一列是3个合并的单元格,有时候是6个,等等。我想运行一个macros,它将第一个单元格的高度改为10个合并的单元格,并在底部插入行以使这个空间。

我有点难以接近这个问题。 任何援助将不胜感激。

让我试着去说明。 如果我想要第一列所有跨越4行,我可能会开始

_________________ |__________ ______|__________ |__________ |__________ ______|__________ 

并最终结束

 _________________ |__________ |__________ |__________ ______|__________ |__________ |__________ |__________ ______|__________ 

感谢您的解释。 你刚刚做到了这一点。 问题是,虽然看起来你只是将合并单元格的高度改变得更大,但实际上是为了使新合并的单元格4的单元格高度合适而创build一个新的合并。

在第一个插图中,显示两个地址范围为A1:A2A3:A6合并单元格。 在第二个例子中,地址分别是A1:A4A5:A8

为了让Excel“更改高度”(我松散地使用那个短语)原始合并单元格在地址A1:A2 ,实际上它必须创build一个新的设置合并单元格在地址范围A1:A4 。 但是,您将无法做到这一点,因为地址A3:A6已经是一个合并的范围,这些将重叠。

如果你想手动去做这件事,那么你就知道你将不得不拆开下面的小组,重新组合最上面的小组,重新组合最下面的小组。

可以编写一个macros,当它被执行的时候,popup一个input框,询问合并的单元格的高度应该是多less。 但是,您的代码将不得不分析您的原始堆栈的合并单元格,然后取消合并,并以编程方式重新编译所有内容以进行更改。 这当然是可能的,但它可能是一个真正的痛苦(但也是一个有趣的挑战:)。

我会问自己,你究竟能够准确地find你想要的东西,因为这在Excel中不完全是自然的行为。


我原来的post如下:现在已经过时,因为我现在明白了作者的要求

如果你只是想改变单元格的高度,你可以使用像这样的东西:

  Rows("1:1").RowHeight = 27.75 

但是,我很困惑您的参考合并单元格。 你只是想改变一个单元格的高度,或者你也试图合并单元格?

无论您想要做什么,您都可以selectTools -> Macro -> Record new macro ,然后手动执行所需的操作,然后停止macros并在VBA中进行编辑,以查看在您的程序中使用的相应VBA命令。