Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.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 值不是按字母顺序排序的_Excel_Vba_Sorting - Fatal编程技术网

Excel 值不是按字母顺序排序的

Excel 值不是按字母顺序排序的,excel,vba,sorting,Excel,Vba,Sorting,调用filter_deals后,当我在代码中插入一个中断符时,我会查看Sheet8(我要粘贴到的工作表),并查看我想要的输出是否按正确的顺序排序。然而,当我没有中断并让代码从头到尾一直运行时,这些值并不像我希望的那样排序。我希望粘贴的每个数据范围按字母顺序排序 我已尝试取消筛选要从中复制范围的工作表 Sub run_level1() Application.Calculation = xlCalculationManual Application.ScreenUpdating = False

调用filter_deals后,当我在代码中插入一个中断符时,我会查看Sheet8(我要粘贴到的工作表),并查看我想要的输出是否按正确的顺序排序。然而,当我没有中断并让代码从头到尾一直运行时,这些值并不像我希望的那样排序。我希望粘贴的每个数据范围按字母顺序排序

我已尝试取消筛选要从中复制范围的工作表

Sub run_level1()

Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False

Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim m As Integer
Dim num_classificaitons As Integer
Dim num_sub_classifications As Integer
Dim sub_classification1 As String
Dim sub_classification2 As String
Dim sub_classification3 As String
Dim irr As Variant
Dim moic As Variant
Dim dpi As Variant
Dim counter As Integer
Dim num_sub_classifications1 As Integer
Dim num_sub_classifications2 As Integer
Dim num_sub_classifications3 As Integer

On Error Resume Next
    Sheet2.ShowAllData


'Calculate Dataset IRR and paste it in output tab

'Call calculate_dataset_irr


'Filters Holdings and Pastes Respective Inputs into Input Lists tab

Call filter_deals


'Run Level 1

counter = 0

Sheet10.Range("B3:E10000").Clear
Sheet3.Range("C1:C8").Clear
Sheet3.Range("E1:E5").NumberFormat = "@"

num_classifications = Sheet8.Cells(1, 10)

For i = 1 To num_classifications
    num_sub_classifications1 = Sheet8.Cells(1, 1 + i)
    For k = 1 To num_sub_classifications1
        sub_classification1 = Sheet8.Cells(2 + k, i + 1).Value2
        sub_classification2 = ""
        sub_classification3 = ""

        Sheet3.Range("C1:C6").NumberFormat = "@"
        Sheet3.Cells(0 + i, 3) = sub_classification1
        Sheet2.Calculate
        Sheet3.Calculate

        irr = Sheet3.Cells(11, 3)

        Sheet10.Cells(3 + counter, 2) = sub_classification1
        Sheet10.Cells(3 + counter, 3) = sub_classification2
        Sheet10.Cells(3 + counter, 4) = sub_classification3
        Sheet10.Cells(3 + counter, 5) = irr

        counter = counter + 1
        Sheet3.Range("C1:C6").Clear
        'Application.StatusBar = "Level 1 Progress: " & counter & " of 194"
    Next k
Next i

End Sub

Sub filter_deals()

Dim filterby1 As String
Dim filterby2 As String
Dim filterto1 As String
Dim filterto2 As String
Dim column1 As Integer
Dim column As Integer
Dim end_range As Integer
Dim i As Integer
Dim ev_ids As Range
Dim all As Range

Sheet8.Range("B3:H1000").Clear
filterby1 = Sheet3.Cells(1, 5)
filterby2 = Sheet3.Cells(3, 5)

filterto1 = Sheet3.Cells(2, 5)
filterto2 = Sheet3.Cells(4, 5)

On Error Resume Next
    Sheet1.ShowAllData

Sheet1.Range("$A$1:$BH$1000").AutoFilter Field:=58, Criteria1:="<>"
Sheet1.Range("BG1:BG1000").AutoFilter Field:=23, Criteria1:="<>"

If filterby2 = "" And filterby1 <> "" Then
    column1 = WorksheetFunction.Match(filterby1, Sheet1.Range("1:1"), 0)
    Sheet1.Range("$A$1:$BG$1000").AutoFilter Field:=column1, Criteria1:=filterto1
End If

If filterby2 <> "" And filterby1 <> "" Then
    column1 = WorksheetFunction.Match(filterby1, Sheet1.Range("1:1"), 0)
    Sheet1.Range("$A$1:$BG$1000").AutoFilter Field:=column1, Criteria1:=filterto1
    column2 = WorksheetFunction.Match(filterby2, Sheet1.Range("1:1"), 0)
    Sheet1.Range("$A$1:$BG$1000").AutoFilter Field:=column2, Criteria1:=filterto2

End If


'Paste Unique Modified Strategies
With Sheet1
    .Range("BD2", .Range("BD2").End(xlDown)).SpecialCells(xlCellTypeVisible).copy Destination:=Sheet8.Range("B3")
End With

With Sheet8
    .Range("B3", .Range("B3").End(xlDown)).RemoveDuplicates Columns:=1, Header:=xlNo
    .Range("B3", .Range("B3").End(xlDown)).Sort Key1:=Range("B3"), Order1:=xlAscending, Header:=xlNo
End With



'Paste Unique Investment Types

With Sheet1
    .Range("BE2", .Range("BE2").End(xlDown)).SpecialCells(xlCellTypeVisible).copy Destination:=Sheet8.Range("C3")
End With

With Sheet8
    .Range("C3", .Range("C3").End(xlDown)).RemoveDuplicates Columns:=1, Header:=xlNo
    .Range("C3", .Range("C3").End(xlDown)).Sort Key1:=Range("C3"), Order1:=xlAscending, Header:=xlNo
End With



'Paste Unique Vintages

With Sheet1
    .Range("BG2", .Range("BG2").End(xlDown)).SpecialCells(xlCellTypeVisible).copy Destination:=Sheet8.Range("D3")
End With

With Sheet8
    .Range("D3", .Range("D3").End(xlDown)).RemoveDuplicates Columns:=1, Header:=xlNo
    .Range("D3", .Range("D3").End(xlDown)).Sort Key1:=Range("D3"), Order1:=xlAscending, Header:=xlNo
End With



'Paste Unique Underwriting Analysts

With Sheet1
    .Range("BF2", .Range("BF2").End(xlDown)).SpecialCells(xlCellTypeVisible).copy Destination:=Sheet8.Range("E3")
End With

With Sheet8
    .Range("E3", .Range("E3").End(xlDown)).RemoveDuplicates Columns:=1, Header:=xlNo
    .Range("E3", .Range("E3").End(xlDown)).Sort Key1:=Range("E3"), Order1:=xlAscending, Header:=xlNo
End With



'Paste Unique Investment Status

With Sheet1
    .Range("BC2", .Range("BC2").End(xlDown)).SpecialCells(xlCellTypeVisible).copy Destination:=Sheet8.Range("F3")
End With

With Sheet8
    .Range("F3", .Range("F3").End(xlDown)).RemoveDuplicates Columns:=1, Header:=xlNo
    .Range("F3", .Range("F3").End(xlDown)).Sort Key1:=Range("F3"), Order1:=xlAscending, Header:=xlNo
End With



'Paste Unique Asset Class

With Sheet1
    .Range("BB2", .Range("BB2").End(xlDown)).SpecialCells(xlCellTypeVisible).copy Destination:=Sheet8.Range("G3")
End With

With Sheet8
    .Range("G3", .Range("G3").End(xlDown)).RemoveDuplicates Columns:=1, Header:=xlNo
    .Range("G3", .Range("G3").End(xlDown)).Sort Key1:=Range("G3"), Order1:=xlAscending, Header:=xlNo
End With



'Paste Unique Deal Names

With Sheet1
    .Range("AZ2", .Range("AZ2").End(xlDown)).SpecialCells(xlCellTypeVisible).copy Destination:=Sheet8.Range("H3")
End With

With Sheet8
    .Range("H3", .Range("H3").End(xlDown)).RemoveDuplicates Columns:=1, Header:=xlNo
    .Range("H3", .Range("H3").End(xlDown)).Sort Key1:=Range("H3"), Order1:=xlAscending, Header:=xlNo
End With

On Error Resume Next
    Sheet1.ShowAllData

Sheet8.Calculate


End Sub
子运行_level1()
Application.Calculation=xlCalculationManual
Application.ScreenUpdating=False
作为整数的Dim i
作为整数的Dim j
将k变为整数
将m作为整数
Dim num_分类为整数
Dim num_sub_分类为整数
Dim sub_分类1作为字符串
Dim sub_分类2作为字符串
Dim sub_分类3作为字符串
变差内部收益率
作为变体的Dim moic
作为变体的Dim dpi
作为整数的Dim计数器
Dim num_sub_classifications1为整数
Dim num_sub_分类2为整数
Dim num_sub_分类3为整数
出错时继续下一步
表2.ShowAllData
'计算数据集IRR并将其粘贴到输出选项卡中
'调用计算\u数据集\u irr
'筛选并将各自的输入粘贴到“输入列表”选项卡中
呼叫过滤器
'运行级别1
计数器=0
活页10.范围(“B3:E10000”)。清除
表3.范围(“C1:C8”)。清除
表3.范围(“E1:E5”).NumberFormat=“@”
num_分类=表8.单元格(1,10)
对于i=1到num_分类
num_sub_classifications1=Sheet8.单元格(1,1+i)
对于k=1到num_sub_分类1
sub_classification1=Sheet8.单元格(2+k,i+1).值2
sub_分类2=“”
sub_分类3=“”
表3.范围(“C1:C6”).NumberFormat=“@”
表3.单元格(0+i,3)=子类别1
表2.计算
表3.计算
内部收益率=表3.单元格(11,3)
表10.单元格(3+计数器,2)=子类别1
表10.单元格(3+计数器,3)=次级分类2
表10.单元格(3+计数器,4)=子类别3
表10.单元格(3+计数器,5)=内部收益率
计数器=计数器+1
表3.范围(“C1:C6”)。清除
'Application.StatusBar=“1级进度:&&counter&”of 194”
下一个k
接下来我
端接头
子过滤器_()
Dim filterby1作为字符串
Dim filterby2作为字符串
Dim filterto1作为字符串
Dim filterto2作为字符串
将第1列设置为整数
将列设置为整数
Dim end_范围为整数
作为整数的Dim i
将ev_ID调暗为范围
调暗所有As范围
表8.范围(“B3:H1000”)。清除
过滤器Y1=表3.单元(1,5)
filterby2=Sheet3.单元(3,5)
filterto1=Sheet3.单元格(2,5)
过滤器2=薄板3.电池(4,5)
出错时继续下一步
表1.ShowAllData
表1.范围($A$1:$BH$1000”)。自动筛选字段:=58,标准1:=“”
表1.范围(“BG1:BG1000”)。自动筛选字段:=23,标准1:=“”
如果filterby2=“”和filterby1”“,则
column1=工作表function.Match(filterby1,Sheet1.Range(“1:1”),0)
表1.范围($A$1:$BG$1000”)。自动筛选字段:=列1,标准1:=筛选到1
如果结束
如果filterby2“”和filterby1“”,则
column1=工作表function.Match(filterby1,Sheet1.Range(“1:1”),0)
表1.范围($A$1:$BG$1000”)。自动筛选字段:=列1,标准1:=筛选到1
column2=工作表function.Match(filterby2,Sheet1.Range(“1:1”),0)
表1.范围($A$1:$BG$1000”)。自动筛选字段:=第2列,标准1:=筛选2
如果结束
“粘贴独特的修改策略
附页1
.Range(“BD2”),.Range(“BD2”).End(xlDown)).SpecialCells(xlCellTypeVisible)。复制目标:=Sheet8.Range(“B3”)
以
附页8
.Range(“B3”),.Range(“B3”).End(xlDown)).removedupplicates列:=1,标题:=xlNo
.Range(“B3”),.Range(“B3”).End(xlDown)).Sort Key1:=Range(“B3”),Order1:=xlAscending,Header:=xlNo
以
'粘贴独特的投资类型
附页1
.Range(“BE2”),.Range(“BE2”).End(xlDown)).SpecialCells(xlCellTypeVisible)。复制目标:=Sheet8.Range(“C3”)
以
附页8
.Range(“C3”),.Range(“C3”).End(xlDown)).removedupplicates列:=1,标题:=xlNo
.Range(“C3”),.Range(“C3”).End(xlDown)).Sort Key1:=Range(“C3”),Order1:=xlAscending,Header:=xlNo
以
“粘贴独特的年份
附页1
.Range(“BG2”),.Range(“BG2”).End(xlDown)).SpecialCells(xlCellTypeVisible)。复制目标:=Sheet8.Range(“D3”)
以
附页8
.Range(“D3”),.Range(“D3”).End(xlDown)).removedupplicates列:=1,标题:=xlNo
.Range(“D3”),.Range(“D3”).End(xlDown)).Sort Key1:=Range(“D3”),Order1:=xlAscending,Header:=xlNo
以
“唯一的承销分析师
附页1
.Range(“BF2”),.Range(“BF2”).End(xlDown)).SpecialCells(xlCellTypeVisible)。复制目标:=Sheet8.Range(“E3”)
以
附页8
.Range(“E3”),.Range(“E3”).End(xlDown)).removedupplicates列:=1,标题:=xlNo
.Range(“E3”),.Range(“E3”).End(xlDown)).Sort Key1:=Range(“E3”),Order1:=xlAscending,Header:=xlNo
以
'粘贴唯一的投资状态
附页1
.Range(“BC2”),.Range(“BC2”).End(xlDown)).SpecialCells(xlCellTypeVisible)。复制目标:=Sheet8.Range(“F3”)
以
附页8
.Range(“F3”),.Range(“F3”).End(xlDown)).removedupplicates列:=1,标题:=xlNo
.Range(“F3”),.Range(“F3”).End(xlDown)).Sort Key1:=Range(“F3”),Order1:=xlAscending,Header:=xlNo
以
'粘贴唯一资产类别
附页1
.Range(“BB2”),.Range(“BB2”).End(xlDown)).SpecialCells(xlCellTypeVisible)。复制目标:=Sheet8.Range(“G3”)
以
附页8
.Range(“G3”),.Range(“G3”).End(xlDown))。移除的重复列:=1,标题:=xlNo
.Range(“G3”),.Range(“G3”).End(xlDown)).Sort Key1:=范围(“G3”),Order1:=xl升序,Header:=xlNo
以
'粘贴唯一的交易名称
附页1
.Range(“AZ2”),.Range(“AZ2”).End(xlDown)).SpecialCells(xlCellTypeVisible)。复制目的地:=Sheet8.Range(“H3”)
以
附页8
.Range(“H3”),.Range(“H3”).End(xlDown)).removedupplicates列:=1,标题:=xlNo
.Range(“H3”),.Range(“H3”).End(xlDown)).Sort Key1:=Range(“H3”),Order1:=xlAscending,Header:=xlNo
机智
With Sheet8
    .Range("G3", .Range("G3").End(xlDown)).RemoveDuplicates Columns:=1, Header:=xlNo
    .Range("G3", .Range("G3").End(xlDown)).Sort Key1:=Range("G3"), Order1:=xlAscending, Header:=xlNo
End With
Key1:=Range("G3")