0
我是VBA品牌的新手,并且自己学习。我想出了一个可行的代码,但我知道在不使用Select
方法的情况下,必须有更优雅的方式来编写代码。如何复制和粘贴范围,包括格式和列宽
wscount = ActiveWorkbook.Worksheets.Count
Sheets.Add After:=Sheets(Sheets.Count)
Worksheets(1).Select
Range("B2:B100").Copy
Worksheets(wscount + 1).Select
Range("A1:A100").Select
Selection.PasteSpecial Paste:=xlPasteColumnWidths
Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
, SkipBlanks:=False, Transpose:=False
我希望我可以在代码中获得列设置的宽度,而不是从源代码复制。
另外,有没有办法让列的宽度根据范围内的一个单元格中的“最长”文本进行更改?
无论如何,我的两个问题是:
- 怎么写上面的代码,而不必使用
Select
,并 - 如何设置列的宽度,所以我不从源头上复制。
[如何避免使用选择和激活](http://stackoverflow.com/q/10714251/6535336)。 – YowE3K
要设置列宽,请尝试使用宏录制器录制宏 - 在录制时将列的宽度设置为例如10,然后自动调整宽度。停止记录器并查看生成的宏 - 它将显示两条语句,例如'Column(“A:A”)。ColumnWidth = 10'和'Columns(“A:A”)。EntireColumn.AutoFit'。 – YowE3K