注意:此解决方案与'1004': "The sort reference is not valid."相同 但是应该保留,因为无论出于何种原因,我收到了不同的错误文本,所以我看到其他人可能有相同的错误,但没有看到上述解决方案是相同的。
我正在尝试处理5个相关的.csv文件,其中4个需要进行排序以使关键关系正确处理。我们每个月都在谈论一组单独的文件,数年的数据,所以预先分配它们不是首选。无论如何,当我尝试排序时,我得到上述错误。我的原始代码名为“sortSheet”(下面已注释掉,但包含在代码之后),我认为将其内联移动可能会解决问题,但它没有发生,任何人都能给我任何洞察力导致这个问题吗?这是当前的代码段:
filename = Dir(fullFolder + "HapDiagnosis.csv")
Dim wbDiag As Excel.Workbook
Dim shDiag As Excel.Worksheet
Set wbDiag = xL.Workbooks.Open(fullFolder + filename)
xOpenDiag = True
Set shDiag = wbDiag.Sheets(1)
lastRow = shDiag.Cells(shDiag.Rows.Count, "A").End(xlUp).row
'sortSheet shDiag, "C", lastRow
shDiag.Range("A1:C" + CStr(lastRow)).Select
Selection.Sort Key1:=Range("B1"), _
Key2:=Range("A1"), _
Header:=xlYes, _
MatchCase:=False
我听说使用“.Select”并不是一个好主意,但是我使用这个子程序得到了同样的错误:
Private Sub sortSheet(ByRef sh As Excel.Worksheet, ByVal rightCol As String, _
ByVal lastRow As Long)
With sh.Range("A1:" + rightCol + CStr(lastRow))
.Sort Key1:=Range("B1"), _
Order1:=xlAscending, _
Key2:=Range("A1"), _
Order2:=xlAscending, _
Header:=xlYes, _
MatchCase:=False, _
Orientation:=xlTopToBottom
End With
End Sub