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
Sorting WORD VBA升序排序和降序排序_Sorting_Vba_Ms Word - Fatal编程技术网

Sorting WORD VBA升序排序和降序排序

Sorting WORD VBA升序排序和降序排序,sorting,vba,ms-word,Sorting,Vba,Ms Word,下面是我的代码,它将数组中的单词按升序排序。我需要帮助以这样一种方式更改它,它也将按降序对单词进行排序,所有这些都在一个函数中。请帮忙。谢谢 Function Sort_Asc(ByRef str() As String) Dim iLower As Integer, iUpper As Integer, iCount As Integer, Temp As String Dim str2 As String iUpper = UBound(str)

下面是我的代码,它将数组中的单词按升序排序。我需要帮助以这样一种方式更改它,它也将按降序对单词进行排序,所有这些都在一个函数中。请帮忙。谢谢

Function Sort_Asc(ByRef str() As String)
     Dim iLower As Integer, iUpper As Integer, iCount As Integer, Temp As String
     Dim str2 As String
           iUpper = UBound(str)
           iLower = 1
           Dim bSorted As Boolean
           bSorted = False
           Do While Not bSorted
                bSorted = True
                For iCount = iLower To iUpper - 1
                str2 = StrComp(str(iCount), str(iCount + 1), vbTextCompare)
                     If str2 = 1 Then
                           Temp = str(iCount + 1)
                           str(iCount + 1) = str(iCount)
                           str(iCount) = Temp
                           bSorted = False
                     End If
                Next iCount
             iUpper = iUpper - 1
           Loop
End Function
怎么样

Function Sort(ByRef str() As String, ByVal booAsc As Boolean)
 Dim iLower As Integer, iUpper As Integer, iCount As Integer, Temp As String
 Dim str2 As String

       iUpper = UBound(str)
       iLower = 1

       Dim bSorted As Boolean
       bSorted = False
       Do While Not bSorted
            bSorted = True
            For iCount = iLower To iUpper - 1
            If booAsc Then
                str2 = StrComp(str(iCount + 1), str(iCount), vbTextCompare)
            Else
                str2 = StrComp(str(iCount), str(iCount + 1), vbTextCompare)
            End If
                 If str2 = 1 Then
                       Temp = str(iCount + 1)
                       str(iCount + 1) = str(iCount)
                       str(iCount) = Temp
                       bSorted = False
                 End If
            Next iCount
         iUpper = iUpper - 1
       Loop
End Function

并使用
Sort strArray,False'(假升序,真降序)

调用该函数,谢谢您让它工作起来。谢谢你的帮助,伙计!