[英]Setting a column width on multiple columns in Excel VBA
Jeeped和CLR提供了代碼,該代碼從D列開始向名為sht02AnalysisSummary的工作表中添加了可變數目的列,同時復制了C列的邊界和公式。
AddCol = txtNrEvaluated
With sht02AnalysisSummary
Set rangeCopy = .Range(.Cells(3, "C"), .Cells(.Rows.Count, "C").End(xlUp))
rangeCopy.Copy Destination:=.Cells(3, .Columns.Count).End(xlToLeft).Offset(0, 1).Resize(rangeCopy.Rows.Count, AddCol)
End With
但是,此代碼不會復制寬度的Column C格式,盡管我嘗試了EntireColumn.ColumnWidth = 15
的With End With
甚至是自己的With End With
,但我一直沒有成功。
任何幫助將不勝感激。
在您的問題下方擴展我的評論。
僅當跨整個列和整個范圍進行復制時,才復制列寬。 同樣rng.ColumnWidth = 15
應該工作
這是您要嘗試的嗎?
Dim rangeCopy As Range, destRng As Range
AddCol = 2
With sht02AnalysisSummary
Set rangeCopy = .Range(.Cells(3, "C"), .Cells(.Rows.Count, "C").End(xlUp))
Set destRng = .Cells(3, .Columns.Count).End(xlToLeft).Offset(0, 1).Resize(rangeCopy.Rows.Count, AddCol)
rangeCopy.Copy destRng
destRng.ColumnWidth = 15
End With
截圖
如果要將源選項卡的列C寬度復制到新列中,可以使用:
Dim rangeCopy As Range, rangePaste As Range
Dim Addcol As Integer
Addcol = NrEvaluated
With sht02AnalysisSummary
Set rangeCopy = .Range(.Cells(3, "C"), .Cells(.Rows.Count, "C").End(xlUp))
Set rangePaste = .Cells(3, .Columns.Count).End(xlToLeft).Offset(0, 1).Resize(rangeCopy.Rows.Count, Addcol)
rangeCopy.Copy Destination:=rangePaste
rangePaste.EntireColumn.ColumnWidth = rangeCopy.EntireColumn.ColumnWidth
End With
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.