Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Почему-то выдает ошибку

2.6K
18 августа 2003 года
ramca
25 / / 17.07.2003
Народ, есть таблица, в двух столбцах которой, суммы, а в третьем № счета фактуры. Надо сделать четвертый столбец, чтобы у меня была отгузка, подтвержденная счетами фактурами. Если писать ручками в ячейку:
=AA7-СУММЕСЛИ(Z7:Z15;"";V7:V15)-СУММЕСЛИ(Z7:Z15;"";W7:W15)
То все нормально, а если сделать это в VB вот так:
S = Range("AA7").Formula
s1 = Mid(S, InStr(S, "V") + 1, InStr(S, ":") - InStr(S, "V") - 1)
s2 = Mid(S, InStr(S, "W") + 1, InStr(S, ")") - InStr(S, "W") - 1)
sf = "AA7-SUMIF(Z" & s1 & ":Z" & s2 & ";" _
& Chr(34) & Chr(34) & ";V" & s1 & ":V" & s2 & ")-SUMIF(Z" _
& s1 & ":Z" & s2 & ";" & Chr(34) & Chr(34) & ";W" & s1 & ":W" & s2 & ")"
Range("AB7").formula = sf

то ругается run-time ошибкой 1004. Как быть? Лопатить около 5 тысяч вот таких вот ячеек вручную - просто лень!!!
HELP!!!!
267
18 августа 2003 года
Cutty Sark
1.2K / / 17.10.2002
Цитата:
Originally posted by ramca
Народ, есть таблица, в двух столбцах которой, суммы, а в третьем № счета фактуры. Надо сделать четвертый столбец, чтобы у меня была отгузка, подтвержденная счетами фактурами. Если писать ручками в ячейку:
=AA7-СУММЕСЛИ(Z7:Z15;"";V7:V15)-СУММЕСЛИ(Z7:Z15;"";W7:W15)
То все нормально, а если сделать это в VB вот так:
S = Range("AA7").Formula
s1 = Mid(S, InStr(S, "V") + 1, InStr(S, ":") - InStr(S, "V") - 1)
s2 = Mid(S, InStr(S, "W") + 1, InStr(S, ")") - InStr(S, "W") - 1)
sf = "AA7-SUMIF(Z" & s1 & ":Z" & s2 & ";" _
& Chr(34) & Chr(34) & ";V" & s1 & ":V" & s2 & ")-SUMIF(Z" _
& s1 & ":Z" & s2 & ";" & Chr(34) & Chr(34) & ";W" & s1 & ":W" & s2 & ")"
Range("AB7").formula = sf

то ругается run-time ошибкой 1004. Как быть? Лопатить около 5 тысяч вот таких вот ячеек вручную - просто лень!!!
HELP!!!!



Ну, начнем с того, что формула начинается с =:
sf = "=AA7-...

2.6K
18 августа 2003 года
ramca
25 / / 17.07.2003
Цитата:
Originally posted by Cutty Sark


Ну, начнем с того, что формула начинается с =:
sf = "=AA7-...



Блин!!! Это просто очепятка... Ессно, она начинается с = !!!!!!

267
18 августа 2003 года
Cutty Sark
1.2K / / 17.10.2002
Цитата:
Originally posted by ramca


Блин!!! Это просто очепятка... Ессно, она начинается с = !!!!!!



Так что, заработало?

2.6K
18 августа 2003 года
ramca
25 / / 17.07.2003
Цитата:
Originally posted by Cutty Sark


Так что, заработало?



Если бы это заработало, то я бы не писал сюда изначально!!!

267
18 августа 2003 года
Cutty Sark
1.2K / / 17.10.2002
Цитата:
Originally posted by ramca


Если бы это заработало, то я бы не писал сюда изначально!!!



По-разному бывает...

Тогда сообщи, чему равно Range("AA7").Formula
(чтобы можно было проследить).

258
18 августа 2003 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by ramca


Если бы это заработало, то я бы не писал сюда изначально!!!



А у меня твой пример выдал ошибку №5 - в первом же s1 -> InStr(s, ":") - InStr(s, "V") стали равны 13-21, что соответственно сразу привело к ошибке.

При использовании такого количества InStr надо все очень хорошо расчитывать, чтобы получать реальные числа (там еще сдвигать начало сверки можно), ты все проверил...???

Честно говоря, я бы сделал это по другому, токо вот трудно понять зависимости твоих формул, а то ты все время обращаешься к предыдущей вбитой в ячейку формуле, а потом ее начинаешь анализировать и менять..., не проще ли сразу составлять нужную формулу на основании активной строки и т.д. (или у тебя каждая следующая формула зависит от предудыщей?) вообщем непонятен алгоритм формирования формул для последующих ячеек, ты бы привел бы пример несколько готовых заполненых ячеек (хотя бы по индукции тогда можно догадаться...)

2.6K
18 августа 2003 года
ramca
25 / / 17.07.2003
Народ, спасибо, разобрался...
С зависимостями - вообще сделал по-другому, а вот та формула, которая генерируется строкой, в ней вместо ";" в качестве разделителей параметров функции надо ставить ",".
Спасибо всем!!!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог