0

Excelで少し問題があります。エクセルマクロの経験がないので、教えていただけると助かります。結合されたセルの高さをコンテンツに合わせて調整するマクロを見つけようとしています。自動的。複数の列のセルに対してそれを行うことができますが、複数の行に対してではなく、自動的にも行うことができないものを見つけました:

 Sub AutoFitMergedCellRowHeight()
 Dim CurrentRowHeight As Single, MergedCellRgWidth As Single
 Dim CurrCell As Range
 Dim ActiveCellWidth As Single, PossNewRowHeight As Single
 Dim iX As Integer

 If ActiveCell.MergeCells Then
    With ActiveCell.MergeArea
         If .Rows.Count = 1 And .WrapText = True Then
             Application.ScreenUpdating = False
             CurrentRowHeight = .RowHeight
             ActiveCellWidth = ActiveCell.ColumnWidth
             For Each CurrCell In Selection
                 MergedCellRgWidth = CurrCell.ColumnWidth + _
                    MergedCellRgWidth
                 iX = iX + 1
             Next
             MergedCellRgWidth = MergedCellRgWidth + (iX - 1) * 0.71
             .MergeCells = False
             .Cells(1).ColumnWidth = MergedCellRgWidth
             .EntireRow.AutoFit
             PossNewRowHeight = .RowHeight
             .Cells(1).ColumnWidth = ActiveCellWidth
             .MergeCells = True
             .RowHeight = IIf(CurrentRowHeight > PossNewRowHeight, _
              CurrentRowHeight, PossNewRowHeight)
         End If
     End With
 End If

サブ終了

最終結果は次のようここに画像の説明を入力 になります。

4

3 に答える 3

4

Excel シートに面倒な作業の一部を任せれば、これを行うためのはるかに簡単な方法があります。

次の例は、複数の列で構成されているが 1 つの行しかないセルがある (つまり、いくつかの列が 1 つの行に結合されている) という一般的なシナリオで機能します。通常の問題は、マージされたセル内の折り返されたテキストの行の高さが、状況によっては折り返されたテキストの高さに対応しないことです (たとえば、数式またはデータベース ルックアップの結果、大量のさまざまな量のテキストが返される)。

これを解決するには、ユーザーに表示されない一部の列で次の操作を実行して、結合されたセルの単一セル バージョンをシミュレートします。

  1. 結合されたセルと同じ行にある単一のセルに、同一の数式を配置するか、結合されたセルへの参照と等しい数式を設定します。
  2. 結合されたすべてのセルに対してこれを行います。
  3. 単一セル バージョンの幅を、結合された各セルの幅と等しくします。これで、結合されたセルの単一セル バージョンのセットが、同じ行に、同じ列幅で作成されました。
  4. これらの単一細胞に名前を付けます。
  5. これらすべての名前付き単一セル範囲をループし、それぞれに対して次の関数を呼び出す関数を記述します。

    Private Sub AutosizeLongFormInput(rng As Range)
        If Not rng.EntireRow.Hidden = True Then
            rng.EntireRow.AutoFit
        End If
    End Sub
    

于 2014-05-29T22:29:37.510 に答える