2016-02-26 74 views
0

我從這個非常好的紳士那裏得到了關於這段代碼的幫助。代碼的這部分基本上寫了一個橫跨兩列,合併和換行文本的標題。我爲不同長度的標題生成了這個excel摘要。對於某些報告,如果標題很短,那麼高度是一個普通的單元格,對於其他的高度爲x3的高度,即使標題的長度不需要那麼高。有沒有一種方法可以讓我指定我希望ROW始終是......說普通排HEIGHT的高度的3倍。我不希望它在報告和報告之間有所不同。不管字符串的長度如何,我希望它看起來一樣。是,這樣的事情可能的,如果我使用.merge和.wraptext =真EXCEL VBA - 格式化:合併,換行文本

Do While Not g_RS3.EOF 
    With xlSheetInsurance.Cells(xlRow, xlCol) 
     .Value = g_RS3("ShortLabel") 
     With .Resize(1, 2) 
      .WrapText = True 
      .Merge 
     End With 
     .Offset(1, 0).Resize(1, 2) = Array("# Clients", "# Students") 
     .Offset(2, 0).Resize(1, 2).ClearContents 
     With .Offset(0, 1) 
      .Resize(1, 2).Merge 
      .Value = "TOTAL" 
      .Offset(1, 0).Resize(1, 2) = Array("# Clients", "# Students") 
      .Offset(2, 0).Resize(1, 2).Formula = _ 
       "=SUMIFS(" & xlSheetInsurance.Range(.Parent.Cells(xlRow + 2, xlStartCol), .Parent.Cells(xlRow + 2, xlCol + 1)).Address(0, 1) & Chr(44) & _ 
          xlSheetInsurance.Range(.Parent.Cells(xlRow + 1, xlStartCol), .Parent.Cells(xlRow + 1, xlCol + 1)).Address(1, 1) & Chr(44) & _ 
          .Parent.Cells(xlRow + 1, xlCol).Address(1, 0) & Chr(41) 
      .Offset(2, 0).Resize(1, 2).AutoFill .Offset(2, 0).Resize(7, 2) ' AutoFill formula for all Types 
      .Offset(2, 0).Resize(7, 2).Borders(xlEdgeRight).LineStyle = xlContinuous 
     End With 
     With .Resize(2, 4) 
      .Font.Bold = True 
      .WrapText = True 
      .VerticalAlignment = xlCenter 
      .HorizontalAlignment = xlCenter 
      .Borders.Weight = xlThin 
     End With 
    End With 
    xlCol = xlCol + 2 
    g_RS3.MoveNext 
Loop 
+0

'.Row.Height = 45' * 15是默認的行高* –

+0

但我會在哪裏包括它在這段代碼。我正在循環播放,並在我去時調整它的大小。我甚至不知道爲什麼它給了我不同的行高 – FatBoySlim7

+0

在'With .Resize(1,2)'塊內,你指定'WrapText'和'合併' –

回答

2

這將讓你所需要的:

With .Resize(1, 2) 
     .WrapText = True 
     .Merge 
     .RowHeight = 45 
    End With