如何复制和粘贴范围,包括格式和列宽
我是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
和 - 如何设置列的宽度,所以我不从源文件复制。
还有更优雅的方法,但是提供的信息,这将是诀窍。
Dim wscount as Integer Dim wb as Workbook Set wb = ActiveWorkbook wscount = wb.Worksheets.Count wb.Sheets.Add After:=wb.Sheets(wb.Sheets.Count) wb.Worksheets(1).Range("B2:B100").Copy wb.Worksheets(wscount + 1).Range("A1:A100").PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _ , SkipBlanks:=False, Transpose:=False wb.Worksheets(wscount + 1).range("a1").EntireColumn.AutoFit