2017-05-29 3 views
1

Ich habe den folgenden Code, der entweder eine ActiveCell und MsgBox es seine MergeArea Grenzen (funktioniert gut), oder nimmt einen vorgegebenen Bereich und macht das gleiche (fehlschlägt). Wenn ich letzteres versuche, bekomme ich application defined or object-defined Fehler.Anwendung definiert oder objektdefiniert Fehler mergedcells

Sub test2() 
    Dim Titles As Range 
    Set Titles = Range("E13:H13") 

    Dim titlesMerge As Range 
    ' Set titlesMerge = ActiveCell.MergeArea 'this works fine 
    Set titlesMerge = Titles.MergeArea 'when use Range("E13:H13") it 
           'fails 

    MsgBox (titlesMerge.Row & " and " & titlesMerge.Rows.Count) 
End Sub 

Zellen "E13:H13" werden zusammengeführt.

Was ist hier falsch?

+3

Die MergeArea-Eigenschaft funktioniert nur für einen einzelligen Bereich. https://msdn.microsoft.com/en-us/library/office/ff822300.aspx –

+1

So erklärt, warum '.MergeArea' mit' ActiveCell' funktioniert und nicht mit 'Selection', obwohl sie sich auf dieselbe verbundene Zelle beziehen . –

Antwort

1

Zu meiner Neugier auf Sir Siddharth Rout 's Kommentar experimentierte ich mit diesem Code.

Sub caller() 
Dim rMergedCell As Range 
' Let B3:C4 a merged cell 
Set rMergedCell = Range("B3:C4") 

    Dim rTitlesCell As Range 
    Set rTitlesCell = rMergedCell.Cells(1, 1).MergeArea 

    MsgBox rTitlesCell.Row & " and " & rTitlesCell.Rows.Count 
' Returns 3 and 2 
End Sub 

Er bemerkte, dass die MergeArea Eigenschaft funktioniert nur auf einem Einzelzellbezug. Warum also nicht die Zelle mit der höchsten oberen Grenze der zusammengeführten Zelle? Hoffe das hilft dem OP.

Verwandte Themen