Страница 1 из 3
Знатокам синтаксиса формул Excel VBA. Как написать формулу
Добавлено: 31 мар 2008, 00:43
VictorM
Уважаемые знатоки, есть вопрос:
сижу вот маюсь, не получается, аж заело.
(Речь о модуле VBA).
Есть ячейка, пусть С3, от нее
Offset(0,sdv). Где sdv - моя переменная, пусть пока - 2.
Код: Выделить всё
Range("C3").Offset(0, sdv).Select'Select для наглядности
т.е. все просто и все работает.
А теперь я хочу выделить диапазон (столбец) до строки, ну хотя бы 100. И дальше, что я не пробовал писать - сплошная ошибка.
Код: Выделить всё
Range(("C3").Offset(0, sdv),("C100").Offset(0, sdv)).Select'приблизительно так
понимаю, что где-то ошибка в синтаксисе, но не могу въехать.
Я конечно решил эту проблемку другим путем, но сидит в голове эта формула - на дает покоя.
Подскажите, как ее нужно было написать?
Спасибо.
Re: Знатокам синтаксиса формул Excel VBA. Как написать формулу
Добавлено: 31 мар 2008, 00:53
Pavel55
Код: Выделить всё
Sub Макрос1()
Dim sdv As Long
sdv = 2
Range("C3").Offset(0, sdv).Resize(98, 1).Select
End Sub
P.S. но лучше не выделять (делать без метода Select)
Re: Знатокам синтаксиса формул Excel VBA. Как написать формулу
Добавлено: 31 мар 2008, 01:01
VictorM
Pavel55, спасибо!!!

А я чё только не пробовал, а о
Resize не подумал. Видать заклинило
P.S. но лучше не выделять (делать без метода Select)
да я его и не выделяю, а сразу копирую
Copy, а
Select, как я говорил - для наглядности (пока).
Еще раз, спасибо.
Удачи!
Re: Знатокам синтаксиса формул Excel VBA. Как написать формулу
Добавлено: 09 апр 2008, 11:50
VictorM
Pavel55, а можно еще вопрос?
У меня в проекте куча конструкций такого типа:
Код: Выделить всё
With ActiveCell 'считывание данных
ДатРас = .Offset(0, -14)
НРКод = .Offset(0, -13)
Фам = .Offset(0, -12)
Адрес = .Offset(0, -11)
Тел = .Offset(0, -10)
НРТов = .Offset(0, -8)
НРСум = .Offset(0, -1)
Дисконт = .Offset(0, 1)
Заметки = .Offset(0, 2)
End With
а помещаю данные я вот так:
Код: Выделить всё
ActiveCell.Offset(iзап, 0).Resize(, 9) = Array(ДатРас, НРКод, Фам, Адрес, Тел, НРТов, НРСум, Дисконт, Заметки)
Так вот вопрос - можно ли первую кострукцию привести к подобному виду?
Оно то работает, но хочется "покрасивше"

Спасибо.
Re: Знатокам синтаксиса формул Excel VBA. Как написать формулу
Добавлено: 09 апр 2008, 21:19
Pavel55
я, к сожалению, не знаю (
Re: Знатокам синтаксиса формул Excel VBA. Как написать формулу
Добавлено: 09 апр 2008, 23:42
Aent
ViktorM, а ДатРас ...Заметки это что: переменные или имена полей формы ?
Как осуществляется иниуиализация этих объектов перед тем как вы применяете =Array(...)?
Re: Знатокам синтаксиса формул Excel VBA. Как написать формулу
Добавлено: 10 апр 2008, 00:33
VictorM
Aent, ДатРас ...Заметки это переменные, которым присваиваютя значения ячеек рабочего листа. Просто я привел только часть кода. Та часть, где они объявляются здесь не присутствует.
Как осуществляется иниуиализация этих объектов перед тем как вы применяете =Array(...)?
?

Re: Знатокам синтаксиса формул Excel VBA. Как написать формулу
Добавлено: 10 апр 2008, 10:42
Aent
Описка. Имелась в виду инициализация. Но раз это переменные, которым присваиваютя значения ячеек рабочего листа - вопрос отпал.
Re: Знатокам синтаксиса формул Excel VBA. Как написать формулу
Добавлено: 10 апр 2008, 17:53
Teslenko_EA
Здравствуйте
VictorM.
Если переменные собрать в массив, то возможно подобная конструкция Вам подойдет
Код: Выделить всё
Sub readData()
Const sArr = "-14^-13^-12^-11^-10^-8^-1^1^2"
Dim sVar() As String, i%
sVar = Split(sArr, "^")
For i = 0 To UBound(sVar)
sVar(i) = ActiveCell.Offset(0, sVar(i))
Next
End Sub
Евгений.
Re: Знатокам синтаксиса формул Excel VBA. Как написать формулу
Добавлено: 10 апр 2008, 20:51
VictorM
Здравствуйте Teslenko_EA, спасибо за код, попробую разобраться.