Как отсортировать выбор - PullRequest
       1

Как отсортировать выбор

0 голосов
/ 12 ноября 2019

Я пытаюсь отсортировать выбор. Я искал в Google, и все хиты хотят отсортировать данные в выборке, их заголовки неточны. Я хочу отсортировать выбор. Итак, что происходит, так это то, что моя рабочая таблица имеет списки кодов в столбцах. Пользователь выберет столько кодов в любом количестве столбцов, сколько пожелает (используя управляющую клавишу и выбирая ячейки там, где он хочет). Когда я перебираю выбор в VBA, я получаю ячейки в ПОРЯДКЕ, КОТОРЫЙ ПОЛЬЗОВАТЕЛЬ ВЫБИРАЛ. Мне нужно обработать их в порядке столбцов, а затем порядок строк. Мой код, который перебирает выделение ...

Dim cl As Range
For Each cl In Selection
    MsgBox "Found cell " & cl.Address & "..." & cl.Value
Next cl

Мой вопрос такой: Как мне получить мой цикл, чтобы дать мне клетки в порядке (cl.column, cl.row)?

Дополнительная информация ... Я вставил изображение своей таблицы ниже. Это списки кодов CPI из API Webservice ABS, хотя это не важно. Я использовал инструмент для подрезки, и когда я взял изображение, выделение выделенных ячеек не показывалось, поэтому я снова выделил их желтым цветом после того, как снял изображение. Ячейки могли быть выбраны пользователем в любом порядке, но мне нужно обработать выделенные ячейки с помощью (столбец, строка). Выбранные ячейки не обязательно являются смежными.

My Spreadsheet

1 Ответ

0 голосов
/ 12 ноября 2019

Это можно сделать, если выбраны последовательные ячейки.

Dim Rng         As Range
Dim r           As Long
Dim c           As Long
Dim StartRow    As Long
Dim EndRow      As Long
Dim StartCol    As Long
Dim EndCol      As Long

Set Rng = Selection

StartRow = Rng.Cells(1).Row
StartCol = Rng.Cells(1).Column

EndRow = StartRow + Rng.Rows.Count - 1
EndCol = StartCol + Rng.Columns.Count - 1

For c = StartCol To EndCol
    For r = StartRow To EndRow
        MsgBox "Found cell " & Cells(r, c).Address & "..." & Cells(r, c).Value
    Next r
Next c
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...