Как отсортировать массив в Excel-VBA - PullRequest
0 голосов
/ 05 октября 2019

Я хочу отсортировать массив двойных значений в Excel-VBA в порядке убывания.

К сожалению, ни одна из найденных мной команд не работает.

Не могли бы вы помочь мне с этим?

Обратите внимание, что я хочу сортировать массив с помощью встроенной функции VBA , а не с помощью алгоритма сортировки, написанного мной.

array.Sort и array.Reverse, к сожалению, не работают.

Вот код:

Sub sortiereMesswerte()
  Dim werte(15) As Double
  Dim i As Integer

  Sheets("Eingabe").Select

  'initliaze array
  For i = 0 To 15
    werte(i) = Cells(i + 2, 2)
  Next i

  'Sort Array
  werte.Sort
  werte.Reverse

  Sheets("Ausgabe").Select

  'print array
  For i = 0 To 15
    Cells(i + 2, 2) = werte(i)
  Next i
End Sub

1 Ответ

0 голосов
/ 06 октября 2019

согласно комментарию @Storax выше, вы можете использовать объект ArrayList, но с ограничениями версии .net framework, которая может быть проблемой, если вы делитесь книгой с другими. Затем вы можете написать код, как показано ниже:

Sub sortiereMesswerte()
  Dim werte As Object
  Dim i As Integer

  Set werte = CreateObject("System.Collections.ArrayList")
  Sheets("Eingabe").Select

  'initliaze array
  For i = 0 To 15
    werte.Add Cells(i + 2, 2).Value
  Next i

  'Sort Array
  werte.Sort
  werte.Reverse

  Sheets("Ausgabe").Select

  'print array
  For i = 0 To 15
    Cells(i + 2, 2) = werte(i)
  Next i

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...