Вы можете сделать 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