Эта строка кода:
Range("Dsched").Offset(2, 0).End(xlDown).End(xlToRight)
возвращает одну ячейку.
Таким образом, в основном shuttleNum
устанавливается на одну ячейку и, следовательно, это: shuttleNum.Columns(2)
выдаст вам ошибку, потому что в этом диапазоне есть только один столбец.
Если я правильно понимаю, что вы пытаетесь сделать, следующее должно помочь.
Предположим, у вас есть некоторые данные, которые начинаются с ячейки A1, но вы не знаете, где они заканчиваются. Например:
![enter image description here](https://i.stack.imgur.com/oHFUI.png)
Чтобы получить диапазон, содержащий данные, который в данном случае равен A1:C5
, вам необходимо выполнить следующее:
Dim sht As Worksheet
Dim rng As Range
Set sht = ThisWorkbook.Worksheets("Worksheet Name")
Set rng = sht.Range("A1")
Set rng = sht.Range(rng, rng.End(xlToRight)) 'A1:C1
Set rng = sht.Range(rng, rng.End(xlDown)) 'A1:C5
В качестве альтернативы вы можете объединить последние два шага в один:
Set rng = sht.Range(rng, rng.End(xlToRight).End(xlDown))