我遇到了这个问题 - 我必须从excel表中检测水平和垂直合并的单元格 . 我必须存储第一个细胞系,以及合并区域的长度 . 我逐行遍历表中两个for-cycles .
如何使用MergeArea属性检测合并和非合并区域?如果单元格未合并,则应该返回空范围,但是,这样:
“如果currentRange什么都没有”
根本不工作 . 有任何想法吗?非常感谢 .
虽然使用@tbur所示的选定单元格很有用,但它也不是唯一可用的选项 .
您可以像这样使用 Range() :
If Worksheets("Sheet1").Range("A1").MergeCells Then Do something Else Do something else End If
要么:
If Worksheets("Sheet1").Range("A1:C1").MergeCells Then Do something Else Do something else End If
或者,您可以使用 Cells() :
If Worksheets("Sheet1").Cells(1, 1).MergeCells Then Do something Else Do something else End If
这有几个有用的代码 .
将光标放在合并的单元格中,并在Immidiate Window中询问这些问题:
activecell是一个合并的单元格吗?
? Activecell.Mergecells True
合并了多少个单元格?
? Activecell.MergeArea.Cells.Count 2
合并了多少列?
? Activecell.MergeArea.Columns.Count 2
合并了多少行?
? Activecell.MergeArea.Rows.Count 1
合并范围地址是什么?
? activecell.MergeArea.Address $F$2:$F$3
2 回答
虽然使用@tbur所示的选定单元格很有用,但它也不是唯一可用的选项 .
您可以像这样使用 Range() :
要么:
或者,您可以使用 Cells() :
这有几个有用的代码 .
将光标放在合并的单元格中,并在Immidiate Window中询问这些问题:
activecell是一个合并的单元格吗?
合并了多少个单元格?
合并了多少列?
合并了多少行?
合并范围地址是什么?