快捷搜索:  汽车  科技

合并单元格基础知识(关于合并单元格的那些事)

合并单元格基础知识(关于合并单元格的那些事)举个例子:你可能会问:这看起来好像很简单的样子啊。但有个问题:合并了单元格之后,我如何引用这个合并单元格呢?Across为可选参数,如果该值为True,则将指定区域内的每一行合并为一个合并单元格。默认值为 False。举个例子Range("a1:c1").Merge 上面这句代码用于把A1到C1的单元格合并在一起。

合并单元格是我们在Excel的报表中经常可见的操作,虽然从数据完整性的角度上来讲,合并单元格并不被推荐,但合理的合并单元格能让报表可读性更好。今天我们来看一下和合并单元有关的那些事。

Merge

第一个当然是合并了。要把单元格合并非常简单,只需要对指定的range使用Merge方法即可。

expression.Merge(Across)

这里的Expression代表的是一个Range对象。

Across为可选参数,如果该值为True,则将指定区域内的每一行合并为一个合并单元格。默认值为 False。

举个例子

Range("a1:c1").Merge

上面这句代码用于把A1到C1的单元格合并在一起。

你可能会问:这看起来好像很简单的样子啊。但有个问题:合并了单元格之后,我如何引用这个合并单元格呢?

举个例子:

现在有一块竖着的合并单元格,我要给这个单元格赋值。那我就先观察一下,发现这个合并区域最左上角的单元格是C6,那么我直接这样写就可以:

range("c6") = "标题"

不知道大家观察到了没,当我选中这个合并区域时,Excel左上角的名称框里,显示的正是C6!

合并单元格基础知识(关于合并单元格的那些事)(1)

大家也可以自己再试试,如果我对于上面的单元格,用下面这句代码,看看单元格的内容会不会有改变?

Range("c7") = 1

UnMerge

有了合并当然要有取消合并。取消合并也是非常简单,使用下面这句即可。

expression.UnMerge

这里的Expression代表的也是一个Range对象。

还是上面这个例子,如果我C6到C12是一个合并单元格区域,那么我使用下面这几句都是等效的

Range("c6").UnMerge Range("c7").UnMerge ... Range("c12").UnMerge

也就是说,在对合并区域中的任何一个range使用Unmerge,都会让整个区域Unmerge。

当然,和前面Merge中所讲的一样,UnMerge后,合并单元格的值会赋值给区域左上角的单元格。

MergeArea

expression.MergeArea

Expression代表的是一个Range对象。这个方法返回一个Range对象,该对象代表包含指定单元格的合并区域。如果指定的单元格不在合并区域内,则该属性返回指定的单元格。

继续在上面的例子进行测试:

Debug.Print Range("c6").MergeArea.Address

返回:

$C$6:$C$13

MergeCells

这个是Range的一个属性,返回一个布尔值,也就是Range区域里有没有包含合并单元格。有就返回True,没有就返回False。

下面这个例子,用于获得当前工作表中所有处在合并状态的单元格

合并单元格基础知识(关于合并单元格的那些事)(2)

Sub test() Dim oCell As Range Dim sAddress As String For Each oCell In ActiveSheet.UsedRange If oCell.MergeCells Then sAddress = sAddress & oCell.Address & vbCrLf End If Next MsgBox sAddress End Sub

总结一下

  • Merge
  • UnMerge
  • MergeArea
  • MergeCells

猜您喜欢: