Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.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 - Fatal编程技术网

Excel 动态获取最后一列字符并传递它

Excel 动态获取最后一列字符并传递它,excel,vba,Excel,Vba,Excel VBA:我正在尝试动态获取最后一列字符,并在选择排序范围时将其作为最后一列传递。但它似乎不起作用这里是代码 Sub Sort_THAT_IS_NOT_CALLED_SORT_BECAUSE_THAT_IS_A_RESEVED_WORD() Dim lastrowcheck As Long, n1 As Long, LastRowcheck1 As Long, n2 As Long Dim lcol As Integer, colletter As String

Excel VBA:我正在尝试动态获取最后一列字符,并在选择排序范围时将其作为最后一列传递。但它似乎不起作用这里是代码

Sub Sort_THAT_IS_NOT_CALLED_SORT_BECAUSE_THAT_IS_A_RESEVED_WORD()
    Dim lastrowcheck As Long, n1 As Long, LastRowcheck1 As Long, n2 As Long
    Dim lcol As Integer, colletter As String

    With Worksheets("MergeSheet")
        lastrowcheck = .Range("A" & .Rows.Count).End(xlUp).Row
        For n1 = 2 To lastrowcheck
            If .Cells(n1, 1).Value = "FUND" Then
                .Rows(n1).Delete
            End If
        Next n1

        ActiveWorkbook.Worksheets("MergeSheet").Sort.SortFields.Clear
        ActiveWorkbook.Worksheets("MergeSheet").Sort.SortFields.Add Key:=Range( _
            "A2"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
            xlSortNormal
        With ActiveWorkbook.Worksheets("MergeSheet").Sort
            lcol = Cells(1, Columns.Count).End(xlToLeft).Column
            colletter = ConvertToLetter(lcol)
            .SetRange Range("A2:colletter" & lastrowcheck)
            .Header = xlNo
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
    End With
End Sub
录音很冗长。您通常可以将记录的代码缩减到记录代码的一小部分,并最终得到实际需要的代码

Sub Sort_THAT_IS_NOT_CALLED_SORT_BECAUSE_THAT_IS_A_RESEVED_WORD2()
    With Worksheets("MergeSheet")
        With .Cells(2, 1).CurrentRegion
            With .Resize(.Rows.Count + (.Rows(1).Row = 1), .Columns.Count).Offset(Abs(.Rows(1).Row = 1), 0)
                .Cells.Sort Key1:=.Columns(1), Order1:=xlAscending, _
                            Orientation:=xlTopToBottom, Header:=xlNo, _
                            DataOption:=xlSortNormal, MatchCase:=False
        End With
    End With
End Sub

您的代码声明您没有标题行,但您是从第2行开始的。你能确认没有标题行吗?