, поэтому мне нужно заполнить массив с помощью InputBox, а затем в массиве отсортировать его по алфавиту и затем вывести его в документ текущего слова. У меня это почти самое полное, проблема в том, что он выводит последнее слово в документ. Я предполагаю, что мой цикл ошибочен, но я не могу найти документацию VBA, чтобы сделать это, чтобы спасти мою жизнь. СпасибоVBA выводит содержимое массива в документ Word
Option Explicit
Это основной суб, который объявляет массив со
Sub Main()
Dim ListArr() As String
ListArr = Get_Input_List()
Call Bubble_Sort_Ascending(ListArr)
Call Output_List_To_Document(ListArr)
End Sub
Функции для получения данных и заполнить массив
Function Get_Input_List() As String()
Dim list As String
list = InputBox("Please enter words to sort separated with a comma and no spaces", "Words")
Get_Input_List = Split(list, ",")
End Function
сортирует массив по алфавиту
Sub Bubble_Sort_Ascending(listNewArray() As String)
Dim SrtTemp As Variant
Dim inputWord As Variant
Dim i As Long
Dim j As Long
'Alphabetize Sheet Names in Array List
For i = LBound(listNewArray) To UBound(listNewArray)
For j = i To UBound(listNewArray)
If listNewArray(i) > listNewArray(j) Then
SrtTemp = listNewArray(j)
listNewArray(j) = listNewArray(i)
listNewArray(i) = SrtTemp
End If
Next j
Next i
End Sub
Это проблема, я c annot выводит весь массив на документ слова. Я нашел много документации о том, как это сделать, в таблицу Excel, но почти ничего не слова.
Sub Output_List_To_Document(newListArray() As String)
Dim inputWord As Variant
Dim i As Long
Dim j As Long
For i = LBound(newListArray) To UBound(newListArray)
For j = i To UBound(newListArray)
For Each inputWord In newListArray
ActiveDocument.Range = inputWord & vbCrLf
Next
Next j
Next i
End Sub
'Output_List_To_Document' имеет три вложенных цикла. Это намеренно? Ваше внутреннее «Для каждого» должно быть достаточно. Кроме того, рассмотрите возможность использования функции 'Join', с' vbCrLf' в качестве разделителя для создания полной строки, а затем вы можете добавить весь массив за один раз. –