Vba 如何复制和粘贴范围,包括格式和列宽
我是VBA的新手,自学成才。我想出了一个有效的代码,但我知道一定有一种更优雅的方法来编写它,而不必使用Vba 如何复制和粘贴范围,包括格式和列宽,vba,excel,Vba,Excel,我是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.P
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
我希望我能得到代码中设置的列的宽度,而不是从源代码中复制
此外,是否有一种方法可以根据范围中一个单元格中的“最长”文本更改列的宽度
无论如何,我的两个问题是:
选择
,以及现在还有更优雅的方式,但是有了提供的信息,这就可以了
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
现在还有更优雅的方式,但是有了提供的信息,这就可以了
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
。要设置列宽,请尝试使用宏录制器录制宏-录制时将列的宽度设置为10,然后自动调整宽度。停止记录器并查看生成的宏-它将显示两条语句,例如
列(“A:A”)。ColumnWidth=10
和列(“A:A”)。EntireClumn.AutoFit
。要设置列宽,请尝试使用宏记录器录制宏-在录制时,将列的宽度设置为,例如10,然后自动调整宽度。停止录音机并查看生成的宏-它将显示两条语句,例如列(“A:A”)。ColumnWidth=10
和列(“A:A”)。EntireColumn.AutoFit
。谢谢你太棒了!谢谢你太棒了!