Я не знаю, как объявлены TTRfile
или ct
, но я знаю, Rng
- это Range
, что означает, что TTRfile.Rng.Cells
- это проблема, если нет проблема.
Если ct
является вариантом или объектом диапазона, то вы можете использовать For Each
, и синтаксически правильный способ создания l oop:
For Each ct In Rng.Cells
Однако, если ct
является числовым, как и в случае с ct = Rng.Cells.Count
, тогда вы не можете использовать For Each
и должны использовать индексную переменную увеличения / уменьшения:
For i = 1 to ct
Кроме того, вы неявно используете ActiveWorksheet
Когда вы установите Rng
, вы должны привыкнуть к явной квалификации рабочего листа. Если TTRfile
является рабочим листом, то
Range(Cells(1, 1), Cells(1, lastcolTTR))
будет выглядеть следующим образом:
TTRfile.Range(TTRfile.Cells(1, 1), TTRfile.Cells(1, lastcolTTR))
Или это:
With TTRfile
.Range(.Cells(1,1), .Cells(1, lastcolTTR))
End With
Говоря о lastcolTTR
, как это объявлено? Это может стать проблемой, если не оценить число. Например, если это вариант, тогда становится возможным держать диапазон, и вы получите ошибку, если этот диапазон содержит более одной ячейки. Кроме того, убедитесь, что вы перехватываете любое условие, из-за которого lastcolTTR
будет меньше 1, поскольку Cells(1,0)
приведет к ошибке вне диапазона.