如何findexcel中的单元格是否合并? 如果单元格激发如何读取值?

如何检测excel中的单元格是否合并?

如果单元格被合并,我该如何读取值?

我不认为有任何公式可以告诉你一个单元格是否合并。 你可以编写你自己的public vba函数,把它放在代码Module中,然后在你的工作表上使用它:

Function IsMerged(rCell As Range) As Boolean ' Returns true if referenced cell is Merged IsMerged = rCell.MergeCells End Function 

然后作为一个Excel公式来testing单元格A1

 =IsMerged(A1) 

欢呼! 想出了一种方法来检查一个单元格是否被合并并返回该单元格的值:

 Sub checkCellMerged1() 'With ThisWorkbook.ActiveSheet Set ma = ActiveCell.MergeArea On Error GoTo errHand If ma = ActiveCell Then MsgBox ActiveCell.Address & " is not merged" GoTo final errHand: If Err.Number = 13 Then MsgBox "Merged Address = " & ma.Address _ & vbCrLf & "Value = " & ma(1).Value final: On Error GoTo 0 'End With End Sub 

以下是如何读取VBA中单元格的值,而不pipe它是否合并。

C.MergeArea.Cells(1, 1).Value

C是你想要看的单元格。 这种方式的工作原理是,如果单元格没有合并,MergeArea与单元格本身完全相同; 否则MergeArea是已经合并的单元格的范围。 并且当这些单元格被合并时,该值被保留在最下面的单元格中。

如果B和C总是被填充,那么有一个简单的非VBA方法来确定一个单元是否被合并。 只需做COUNTA(B2,C2)并检查总数。 如果B2与C2合并,合计为1,否则计数为2。