Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.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
Excel 排序原始数据工作簿vba_Excel_Vba - Fatal编程技术网

Excel 排序原始数据工作簿vba

Excel 排序原始数据工作簿vba,excel,vba,Excel,Vba,我的目标是根据C列中从最小到最大的顺序对整个原始数据工作簿进行排序。这样可以确保在这种情况下,极点在输出excel文件中按顺序进行排序。我使用VBA来解决这个问题,但似乎无法解决。下面是我现有的代码 Sub ECOECCSV() Dim desPathName As Variant desPathName = Application.GetOpenFilename(FileFilter:="Excel Files (*.csv*), *.csv*", Title:="Please select

我的目标是根据C列中从最小到最大的顺序对整个原始数据工作簿进行排序。这样可以确保在这种情况下,极点在输出excel文件中按顺序进行排序。我使用VBA来解决这个问题,但似乎无法解决。下面是我现有的代码

Sub ECOECCSV()
Dim desPathName As Variant
desPathName = Application.GetOpenFilename(FileFilter:="Excel Files (*.csv*), *.csv*", Title:="Please select a file")
If desPathName = False Then
    MsgBox "Stopping because you did not select a file. Reselect a destination file through the menu"
    Exit Sub
Else
    Workbooks.Open Filename:=desPathName
    Set des = Workbooks.Open(desPathName, True, False)
End If
ActiveSheet.Name = "RawData"
Set RDBook = Worksheets("RawData").Parent

Workbooks.Add
If Worksheets.Count > 2 Then
Application.DisplayAlerts = False ' prevent are you sure message while deleting
Sheets("Sheet3").Delete
Sheets("Sheet2").Delete
Application.DisplayAlerts = True
End If
lastcolumn = 1
Do While HomeSheet.Cells(1, lastcolumn) <> ""
lastcolumn = lastcolumn + 1
Loop

lastrow = 2
Do While HomeSheet.Cells(lastrow, 1).Value <> ""
HomeSheet.Cells(lastrow, PoleNum) = CDbl(HomeSheet.Cells(lastrow, PoleNum))
lastrow = lastrow + 1
Loop
sortColumn = Cells(1, PoleNum).Address(RowAbsolute:=False, 
ColumnAbsolute:=False)
sortEnd = Cells(lastrow, lastcolumn).Address(RowAbsolute:=False, 
ColumnAbsolute:=False)

HomeSheet.Range("A1:" & sortEnd).Sort key1:=HomeSheet.Range(sortColumn), 
order1:=xlAscending, Header:=xlYes

Sheets(1).Name = "Make-Ready"
Set MRBook = Worksheets("Make-Ready").Parent
原始数据工作表是将在宏中使用的输入文件,即我希望对杆进行排序的文档。“准备就绪”是将要输出的文档。从lastcolumn=1到Header:=xlYes是我的代码,它不起作用


提醒:我的目标是根据这一列对整个工作表进行排序

PoleNum从未被赋值,这可能会导致一些问题。我认为它在RDBook.Cells1,lastcolumn.value行Do While中有问题。调试器就是这么说的@warcupineRecommend将选项显式放在子项上方。这将确保您已声明了变量。缩进代码以便于阅读也是一个好主意。此外,为了帮助清理代码,您可以通过以下方式找到最后一行和最后一列:LastRow=CellsRows.Count,1.EndxlUp.row“将第二个数字更改为有问题的列LastCol=Cells1,Columns.Count.EndxlToLeft.column”将第一个数字更改为有问题的行