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