我是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
和答案 0 :(得分:1)
还有更优雅的方式,但是通过提供的信息,这将有所帮助。
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