Vba 排序时出现范围错误
我有一些代码可以读取文件夹中的所有文件,并将它们显示在Excel中的列中。在它获取数据后,我希望VBA对这些数据进行排序,但我一直得到一个: 运行时错误“1004”:选择范围类的方法失败 注意,我只对A列排序感兴趣。根据我搜索的文件类型,可能有10个结果,或者可能有100多个结果 我有一个名为“gatherInfo”的按钮,一旦单击该按钮,它将收集信息(由于文件夹名和文件名的保密性,无法显示该部分代码)。信息的收集工作正常,但排序却不行Vba 排序时出现范围错误,vba,excel,sorting,Vba,Excel,Sorting,我有一些代码可以读取文件夹中的所有文件,并将它们显示在Excel中的列中。在它获取数据后,我希望VBA对这些数据进行排序,但我一直得到一个: 运行时错误“1004”:选择范围类的方法失败 注意,我只对A列排序感兴趣。根据我搜索的文件类型,可能有10个结果,或者可能有100多个结果 我有一个名为“gatherInfo”的按钮,一旦单击该按钮,它将收集信息(由于文件夹名和文件名的保密性,无法显示该部分代码)。信息的收集工作正常,但排序却不行 Private Sub GatherInfo_Click(
Private Sub GatherInfo_Click()
*gets info*
Cells(1, 1).Select
Cells(1, 1).Select
Sheets("Data").Select
Dim oneRange As Range
Dim aCell As Range
Set oneRange = Range("A1:A100")
Set aCell = Range("A1")
oneRange.Sort Key1:=aCell, Order1:=xlAscending, Header:=xlYes
End Sub
我尝试按名称顺序排序的文件示例:
- cat01.exe
- cat07.exe
- cat02.exe
- cat11.exe
- cat03.exe
希望它看起来像:
- cat01.exe
- cat02.exe
- cat03.exe
- cat07.exe
- cat11.exe
EDIT:稍微更改了代码,去掉了Select语句,错误消失了,但仍然没有排序
Private Sub GatherInfo_Click()
*gets info*
Dim oneRange As Range
Dim aCell As Range
Set oneRange = Range("A1:A100")
Set aCell = Range("A1")
oneRange.Sort Key1:=aCell, Order1:=xlAscending, Header:=xlYes
End Sub
EDIT02:我认为我的问题是实际的文件名,结束我的问题,因为这样做有效:
Public Sub GatherInfo_Click()
'*gets info*
Cells(1, 1).Select
Cells(1, 1).Select
Sheets("Data").Select
Dim oneRange As Range
Dim aCell As Range
Set oneRange = Range("A1:A100")
Set aCell = Range("A1")
oneRange.Sort Key1:=aCell, Order1:=xlAscending, Header:=xlYes
End Sub
检查数据的拼写去掉
单元格(1,1)。选择(两种情况都发生)。错误消失了,这是一个加号,但不是排序拼写正确,我取出了代码的选定部分以简化它。清除错误,但它仍然没有排序。@pts2800是否确定它正在对正确的工作表排序?因为这在我测试它的时候是有效的。@DavidZemens有趣的是,刚刚用cat示例进行了尝试,并且成功了,这一定与我正在使用的文件名有关。。。谢谢你的帮助@pts2800您提供的示例数据应该代表您正在使用的实际数据,这可能是一个好主意。。。