0

大量のデータを含むスプレッドシートがあります。約半分のセルが他のセルと水平方向に結合され、John Doe などの名前が含まれています。以前に結合されたすべてのセルにセルの値を分配しながら、セルの結合を解除するマクロを作成する方法を知っている人はいますか? 乾杯ジャック

編集:これを行っている理由は、2 つの隣接するセルが等しいかどうか、つまり A1 = A2 かどうかを確認するためです。しかし、どちらかのセルがマージされると問題が発生します。セルを分離してデータをコピーせずにこの問題を回避する方法を誰かが知っていれば、さらに良いでしょう!

4

2 に答える 2

1

以下に提供するアイデアは、Excel 2010 VBA Win7 でテストされています。ただし、Mac でも同様に機能することを願っています (これは の標準的なプロパティとメソッドのセットであるためRange object)。これでうまくいかない場合は、回答を削除するようお知らせください。

この単純なコードは、選択した領域に対して機能しますが、他の範囲に変更するのは非常に簡単です。以下のコード内の他のコメント。

Sub Unmerging_Selection()

    Dim tmpAddress As String
    Dim Cell As Range

    'change Selection below for any other range to process
    For Each Cell In Selection

        'check if cell is merged
        If Cell.MergeCells Then
            'if so- check the range merged
            tmpAddress = Cell.MergeArea.Address
            'umnerge
            Cell.UnMerge
            'put the value of the cell to
            Range(tmpAddress) = Cell
        End If
    Next

End sub

そして、結果の前後を示す写真:

ここに画像の説明を入力

于 2013-06-18T22:52:18.133 に答える