用Excel-VBA实现自动排序

用Excel-VBA实现自动排序,vba,excel,Vba,Excel,这是工作时间最长的一次,但我想我可能做了些什么把事情搞砸了。我已经检查了一遍又一遍,它不再对我的数据进行排序。代码可以在其他工作表中使用,但我不明白为什么它不能在当前工作表中使用 它给了我错误“1004”: 范围类的排序方法失败 Private Sub Worksheet_Change(ByVal Target As Excel.Range) 'Don't run this code unless a value is last entered in column "H" If Not T

这是工作时间最长的一次,但我想我可能做了些什么把事情搞砸了。我已经检查了一遍又一遍,它不再对我的数据进行排序。代码可以在其他工作表中使用,但我不明白为什么它不能在当前工作表中使用

它给了我错误“1004”: 范围类的排序方法失败

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

'Don't run this code unless a value is last entered in column "H"
  If Not Target.Column = "8" Then Exit Sub

  'Prevents endless loops
    Application.EnableEvents = False



    'Assumptions
    '1.  Data only housed in Columns H
    '2.  The first row contains headings or labels
    '3   Column "H" is used as the sort criteria

      Me.UsedRange.Sort Key1:=Columns("H"), Order1:=xlAscending, _
      Header:=xlYes, OrderCustom:=1, MatchCase:=False, _
      Orientation:=xlTopToBottom

    Application.EnableEvents = True
    On Error Resume Next
    ActiveWorkbook.Save



End Sub

这似乎对我有用:

Private Sub Worksheet_Change(ByVal Target As Range)
'Don't run this code unless a value is last entered in column "H"
  If Not Target.Column = 8 Then Exit Sub
    MsgBox " "
  'Prevents endless loops
    Application.EnableEvents = False



    'Assumptions
    '1.  Data only housed in Columns H
    '2.  The first row contains headings or labels
    '3   Column "H" is used as the sort criteria

      ActiveSheet.UsedRange.Sort Key1:=Columns("H"), Order1:=xlAscending, _
      Header:=xlYes, OrderCustom:=1, MatchCase:=False, _
      Orientation:=xlTopToBottom

    Application.EnableEvents = True
    ActiveWorkbook.Save

End Sub

请确保在列H

中有“可排序”数据,如果我尝试,您的代码可以运行。H列中的所有数据都有效吗?没有无法排序的混乱计算之类的吗?我也是这么说的。实际上,我在另一个部分中有代码,它工作得很好。我在“H”中唯一能看到的就是技术人员的名字,比如“乔”或“菲尔”。这对我来说毫无意义。我在H里只有一个名字。没有无法排序的内容。它也会突出显示代码的这一部分。Me.UsedRange.Sort Key1:=列(“H”),Order1:=xlAscending,u头:=xlYes,OrderCustom:=1,MatchCase:=False,uu方向:=xltoptobttom头应该在H1中。您还需要以下单元格中的一些数据。我有所有这些:(只是不知道为什么会出错。这里让我把它放在我的dropbox中并共享它。好吧,我想我已经把它缩小到透视表了。如果我回到标准表,它的排序很好,但是由于某种原因,如果它是透视表,它会导致错误。基本上,我需要在每个条目之后对数据进行排序。有其他方法吗?