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”)
一样简单-我已经搞定了。