Я пытаюсь отсортировать заранее определенный диапазон ячеек из пользовательской формы (скажем, A1: A5), используя размер массива в качестве целого числа и сам массив. Я проверил более 20 ссылок, не найдя решения.
Приведенный ниже код успешно получает значения массива (для моего тестирования есть пять двойных), вставляет их в лист sheetOperations
(я всегда использую таблицы с таргетингом на код, чтобы минимизировать проблемы). Таким образом, таргетинг на листы работает, а циклическая обработка массива и получение значений работают.
Сортировка диапазона (A1: A5) не удалась. Я пробовал множество кода. Я пытаюсь получить от A1 до A5 (на указанном рабочем листе c), чтобы перечислить предыдущие значения в диапазоне в порядке убывания - когда я запускаю этот код (я пытался по возрастанию, по убыванию), он выдавал мне различные ошибки, такие как 1004 и др. c.
Если A1: A5 равен {1,3,2, 4, 6}, я хочу получить A1: A5 {6,4,2,3,1}.
Sub timeStampStorePart2(ByRef doubleArray() As Double, ByVal size As Integer)
Dim ws As Worksheet
Dim wsFound2 As Worksheet
For Each ws In ThisWorkbook.Worksheets
If StrComp(ws.CodeName, "sheetOperations", vbTextCompare) = 0 Then
Set wsFound2 = ws
'MsgBox ("Found")
End If
Next ws
Dim loopInt As Integer
Dim arrayInt As Integer
Dim rangeAddress As String
arrayInt = 0
loopInt = 1
For loopInt = 1 To size
rangeAddress = "A" & loopInt
wsFound2.Range(rangeAddress).Value = doubleArray(arrayInt)
arrayInt = arrayInt + 1
Next loopInt
'rangeAddress = "A1:" & rangeAddress
'MsgBox (rangeAddress)
'Dim dataRange As Range
'Set dataRange = wsFound2.Range(rangeAddress)
wsFound2.Range("A1:A5").Sort key1:=Range("A2"), order1:=xlAscending, Header:=xlNo
End Sub