Я думал, что это будут простые ответы, но не могу найти его где-либо

У меня есть макрос на основе выбранной ячейки, который запускается в контекстном меню правой кнопкой мыши.

Мне нужно получить номер столбца в зависимости от того, где находится ячейка в именованном диапазоне.

Пример именованного диапазона = C4: выбранная ячейка H9 = E6 Значение, которое я пытаюсь получить - = 3

E, который является 5-м столбцом - C, который является 3-м столбцом + 1, потому что номер столбца не основан на 0.

Есть ли простой способ сделать это на линии, как Range("namedRange"). ColumnDif (selectedCell)

1 ответ1

0

Попробуйте что-то вроде

Dim namedRangeFirstCol: namedRangeFirstCol = Range("Test").Column
Dim namedRangeLastCol: namedRangeLastCol = namedRangeFirstCol + Range("Test").Columns.Count - 1

If Selection.Column >= namedRangeFirstCol And Selection.Column <= namedRangeLastCol Then
   MsgBox Selection.Column - Range("Test").Column + 1
End If

Оператор IF предназначен только для проверки того, что выбранная ячейка действительно находится в диапазоне. Вам может понадобиться только Selection.Column - Range("Test").Column + 1

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .