Jeeped和CLR友好地提供了代码,该代码在名为 sht02AnalysisSummary 的工作表中添加了可变数量的列,从D列开始,同时复制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
但是,此代码不会在宽度方面复制C列的格式,虽然我已经使用EntireColumn.ColumnWidth = 15
进行了With End With
的测试,甚至尝试了自己的With End With
,但我有没有成功。
非常感谢任何帮助。
答案 0 :(得分:3)
在我的问题下面扩展我的评论。
只有在整个列和范围内进行复制时,才会复制列宽。 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
<强>截图强>
答案 1 :(得分:0)
如果要将源标签的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