Выбор определенной ячейки c при работе в динамическом диапазоне c - PullRequest
0 голосов
/ 24 марта 2020

Мой код выполняет различные операции (копирование / вставка и т. Д. c.) В пределах диапазона, и мне нужно быть в пределах диапазона и выполнять вычисления в одной из ячеек (например: строка 1, столбец 6 диапазона)

Dim cols as long, rng as range
rng = range ("A1:H12")
cols = 15

With rng.Offset(0, cols).Select
 "Some other code in between".....
 .Range(.Cells(1, 6), .Cells(1, 6)).Value = 6 * 2 ' intend to perform a calculation in the cell within the selected range

End with


1 Ответ

1 голос
/ 24 марта 2020

Вы можете сделать Range (). Cells () Возвращает объект Range или ячейку, используя индексы, относящиеся к этому диапазону, используя первый индекс в качестве номера строки внутри диапазона и второй в качестве номера столбца.

Таким образом, теоретически вы должны иметь возможность использовать функции (или методы) объекта диапазона, полученные с помощью .Cells ()

Я думаю, вы могли бы использовать функцию Offset на Диапазон также получен при использовании ячеек.

В том диапазоне, который у вас есть, то есть A1: H12

Dim cols as long, rng as range
rng = range ("A1:H12")
cols = 15

With rng.Offset(0, cols).Select
 "Some other code in between".....
 .Cells(1, 6).Value = 6 * 2 ' Performs calculation in the 1st row and 6th column in the first row and sixth column inside A1:H12.
'The result would be the Cell F1

End with

Если у вас было:

Set R = Range("A5:C10")
R.Cells(2,3) 

Даст вам ячейку C6.

Использование функции смещения:

Range("A1:H12").Cells(1, 6).Offset(4,2)

Это займет ячейку F1 и затем переместит 4 строки вниз и 2 столбца вправо. Итак, после тестирования на консоли он возвращает H5

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