3

セルに1つのChr(10)があります

cell.WrapText = False
cell.EntireRow.AutoFit ' AutoFit works
' ------------ but:
cell.WrapText = True
cell.EntireRow.AutoFit ' AutoFit works only if the cell has less then five lines.

いくつかの文字を追加すると(さらに1行)-AutoFitが機能しません。テキストは最初と最後の行でカットされます。
ver-有名なExcel2010

4

2 に答える 2

4

データの大きさと列の幅によって異なります。行が拡張できる最大の高さである理由は409.5 (546 pixels)です。行の高さを手動で増やすと、特定の高さを超えると、行の高さを増やすことができなくなります。その高さを確認してください:)幅の概念も同じです。これは、行と列の両方に適用されます。列の場合、最大幅は254.86 (1789 pixels)

私はこのコードをデモンストレーションの目的で使用しました。

Option Explicit

Sub Sample()
    ActiveCell.WrapText = True
    ActiveCell.EntireRow.AutoFit
    MsgBox ActiveCell.RowHeight
End Sub

このスクリーンショットを参照してください

これは動作します

ここに画像の説明を入力してください

これはしません

行が最大に達しました。それを超えることはできません。

ここに画像の説明を入力してください

これを処理する最良の方法は、列の幅を広げることです。

ファローアップ

それが機能しなかった理由は、その行にデータを含む複数の列があり、1つのセルのWrapTextを設定しようとしたため、機能しなかったためです。データの列が複数ある場合は、cell.EntireRow.WrapText = True代わりに使用する必要がありますActiveCell.WrapText = True

于 2012-09-22T08:41:16.617 に答える
0

それが誰かを助ける場合の関連する解決策。「テキストの折り返し」がオンになっているデータと、「Char(10)」を使用した数式からデータをコピーしたセルの改行があります。改行が必要です。

たとえば、セル内のデータは次のように表示されます。
都市:ニューヨーク(1950)
国:米国

しかし、それは次のようなものを示しました:
都市:
ニューヨーク(1950)
国:
米国

列を選択し、クリックして自動調整すると、わずかな改善が見られました。
都市:ニューヨーク
(1950)
国:米国

手動自動調整を2回繰り返すと、テキストが目的の形式になります。
1行にスペースで区切られたテキストがさらにある場合は、さらに多くの自動調整が試行され、最終的にフォーマットが完全に修正されます。

そのため、VBAコードでは、これを複製し、自動調整コードを、問題が解決することがわかっている回数だけ繰り返しました。

'Adjust column Width
        wsSched2.Columns("F:CZ").EntireColumn.AutoFit
        DoEvents
        wsSched2.Columns("F:CZ").EntireColumn.AutoFit
        DoEvents
        wsSched2.Columns("F:CZ").EntireColumn.AutoFit

(「DoEvents」がなくても機能する可能性があります。試したことはありません)

于 2019-03-05T17:59:14.627 に答える