Diadema Цитата: Значит если считывать range всегда будет значение типа Variant?
Не всегда, если обращение к одиночной ячейке, то Range("A1").Value может быть String, Double, Date, Currency
Цитата: еще вопрос такой, как найти адрес самого правого заполненного столбца в таблице с разным количеством заполненных строк
Если под таблицей понимать область данных, где нет сквозных пропусков по строкам и столбцам (любая ячейка таблицы с данными имеет хотя бы одну соседнюю ячейку с даными, хотя бы по диагонали), то можно воспользоваться
LastCol = Cells(i, j).CurrentRegion.Columns.Count + Cell(i, j).CurrentRegion.Column - 1&
где i, j индексы строки/столбца ячейки, которая гарантированно находится внутри твоей таблицы