Excel宏用于处理工作簿中的所有工作表
试图使宏在工作簿中的所有工作表上工作 我想 将所选内容复制到同一工作表中的单独位置,但仅粘贴值 然后根据第一列在新位置对所选内容进行排序 这就是我所拥有的Excel宏用于处理工作簿中的所有工作表,excel,Excel,试图使宏在工作簿中的所有工作表上工作 我想 将所选内容复制到同一工作表中的单独位置,但仅粘贴值 然后根据第一列在新位置对所选内容进行排序 这就是我所拥有的 Sub SortALLsheets() Dim wsheet As Worksheet For Each wsheet In ActiveWorkbook.Worksheets Sheets(wsheet.Name).Select Range("AJ4:AK1732").Select Selection.Copy R
Sub SortALLsheets()
Dim wsheet As Worksheet
For Each wsheet In ActiveWorkbook.Worksheets
Sheets(wsheet.Name).Select
Range("AJ4:AK1732").Select
Selection.Copy
Range("AP4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("AP4:AQ1732").Select
WS.Sort.SortFields.Add Key:=Range("AP4:AP1732"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With WS.Sort
.SetRange Range("AP4:AQ1732")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Next wsheet
End Sub
我在Ws.sort行上得到一个错误
非常感谢所有的帮助
谢谢
在excel宏中很少需要Ronald选择。请尝试此更新
Sub SortALLsheets()
Dim wsheet As Worksheet
For Each wsheet In ActiveWorkbook.Worksheets
wsheet.Range("AP4:AQ1732").value=wsheet.Range("AJ4:AK1732").value
wsheet.Sort.SortFields.Add Key:=wsheet.Range("AP4:AP1732"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With wsheet.Sort
.SetRange wsheet.Range("AP4:AQ1732")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Next wsheet
End Sub
你有什么错误?请更具体地
WS.SORT
-哪里是WS
维度?您确定这不应该是wsheet.Sort
?另外,请注意复制值与Sheets(“SheetWhereYouWantToPasteName”).Range(“A1”)=Sheet(“SheetToGetDataFrom”).Range(“A1”)
一样简单-我已经搞定了。