Проблема после сортировки данных - PullRequest
0 голосов
/ 20 декабря 2018

Я пишу код, который сохраняет текущую область листа в переменной диапазона, затем отправляю ее в функцию для сортировки данных и затем показываю результат в окне сообщения.

Я сортирую ярость только для того, чтобы представить нав порядке возрастания, но не хочу, чтобы данные на листе были затронуты.Но после вызова функции мои данные на листе будут отсортированы как

Имея ниже предложение в другом модуле:

Set arg = .Range("A1").CurrentRegion

Код функции

Function sortOnOneCol(ByVal ary As Range) As String

    Dim msg As String
    Dim I, J As Long
    Dim sorted_rng As Range
    Dim lstRow, lstCol As Long


    Set sorted_rng = ary
    sorted_rng.SortSpecial key1:=Range("C1"), order1:=xlAscending, Header:=xlYes

    msg = "Certificates Expire Dates " & vbCrLf & vbCrLf
    lstRow = sorted_rng.Rows.Count
    lstCol = sorted_rng.Columns.Count

    For I = 2 To lstRow

        If sorted_rng.Range("C" & I) - (Date) <= 30 Then
            msg = msg & sorted_rng.Range("B" & I).Value & " in " & sorted_rng.Range("C" & I).Value - Date & " days" & vbCrLf

        ElseIf sorted_rng.Range("C" & I) - (Date) >= 30 And sorted_rng.Range("C" & I) - (Date) <= 90 Then

            msg = msg & sorted_rng.Range("B" & I).Value & " in " & sorted_rng.Range("C" & I).Value - Date & " days" & vbCrLf
        ElseIf sorted_rng.Range("C" & I) - (Date) >= 90 And sorted_rng.Range("C" & I) - (Date) <= 180 Then

            msg = msg & sorted_rng.Range("B" & I).Value & " in " & sorted_rng.Range("C" & I).Value - Date & " days" & vbCrLf
        Else
            sorted_rng.Range("C" & I).Interior.Color = xlNone

        End If

    Next I

    Set sorted_rng = Null
    sortOnOneCol = msg
End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...