これにはかなりの問題があります-Excelテーブルから水平および垂直に結合されたセルを検出する必要があります。最初のセル座標と、マージされた領域の長さを保存する必要があります。 2つのforサイクルでテーブルを1行ずつ繰り返します。
MergeAreaプロパティを使用して、マージされた領域とマージされていない領域を検出するにはどうすればよいですか?セルが結合されていない場合は、おそらく空の範囲を返しますが、これは次のとおりです。
「currentRangeが何もない場合」
まったく機能していません。何か案は?どうもありがとう。
これにはいくつかの役立つコードがあります。
mergedセルにカーソルを置き、イミディエイトウィンドウで次の質問をします。
アクティブセルは結合セルですか?
? 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
@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