Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 排序时出现范围错误_Vba_Excel_Sorting - Fatal编程技术网

Vba 排序时出现范围错误

Vba 排序时出现范围错误,vba,excel,sorting,Vba,Excel,Sorting,我有一些代码可以读取文件夹中的所有文件,并将它们显示在Excel中的列中。在它获取数据后,我希望VBA对这些数据进行排序,但我一直得到一个: 运行时错误“1004”:选择范围类的方法失败 注意,我只对A列排序感兴趣。根据我搜索的文件类型,可能有10个结果,或者可能有100多个结果 我有一个名为“gatherInfo”的按钮,一旦单击该按钮,它将收集信息(由于文件夹名和文件名的保密性,无法显示该部分代码)。信息的收集工作正常,但排序却不行 Private Sub GatherInfo_Click(

我有一些代码可以读取文件夹中的所有文件,并将它们显示在Excel中的列中。在它获取数据后,我希望VBA对这些数据进行排序,但我一直得到一个:

运行时错误“1004”:选择范围类的方法失败

注意,我只对A列排序感兴趣。根据我搜索的文件类型,可能有10个结果,或者可能有100多个结果

我有一个名为“gatherInfo”的按钮,一旦单击该按钮,它将收集信息(由于文件夹名和文件名的保密性,无法显示该部分代码)。信息的收集工作正常,但排序却不行

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您提供的示例数据应该代表您正在使用的实际数据,这可能是一个好主意。。。