2017-05-29 42 views
1

ActiveCellとMsgBoxMergeAreaボーダー(正常に動作)か、所定の範囲をとり、同じ(失敗)のいずれかのコードがあります。後者を試してみるとapplication defined or object-definedエラーが出ます。アプリケーション定義またはオブジェクト定義のエラー結合セル

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 

セル"E13:H13"がマージされます。

ここで何が間違っていますか?

+3

MergeAreaプロパティは、単一セル範囲でのみ機能します。 https://msdn.microsoft.com/en-us/library/office/ff822300.aspx –

+1

なぜなら、 '.MergeArea'はなぜ' Selection'ではなく 'ActiveCell'で動作するのかを説明します。なぜなら、それらは同じマージされたセル。 –

答えて

1

Sir Siddharth Routさんのコメントに対する私の好奇心に、私はこのコードを実験しました。

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 

彼はMergeAreaプロパティは、単一セルの参照に動作することを述べました。では、結合されたセルの最も左上のセルを取得してみませんか?これがOPに役立つことを願っています。

関連する問題