Гость
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / В формуле счетесли(R3C5:R3C45;"+") ошибка / 25 сообщений из 26, страница 1 из 2
03.10.2018, 15:29
    #39712508
muk07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В формуле счетесли(R3C5:R3C45;"+") ошибка
Программа на Си вычисляет строку формулы и и вставляет её в ячейку.
До EXCEL 10 работало
Теперь выдаётся сообщение об ошибке для формулы, например, счетесли(R3C5:R3C45;"+")
Я что-то в жизни пропустил?
...
Рейтинг: 0 / 0
03.10.2018, 15:53
    #39712523
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В формуле счетесли(R3C5:R3C45;"+") ошибка
Синтаксически претензий к формуле нет (если там таки есть ведущий знак равенства)... ну разве что проверить, что не установлен режим англоязычных имён функций при установленном дополнительном языковом пакете (хотя емнип оно работает только при смене языка интерфейса).
...
Рейтинг: 0 / 0
03.10.2018, 16:48
    #39712554
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В формуле счетесли(R3C5:R3C45;"+") ошибка
muk07Теперь выдаётся сообщение об ошибке
1. Какое
2. приведите строку записи формулы в ячейку полностью. Потому что есть Formula, FormulaR1C1, FormulaLocal, FormulaLocalR1C1. Что используете Вы и в каком виде?
...
Рейтинг: 0 / 0
03.10.2018, 17:04
    #39712562
muk07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В формуле счетесли(R3C5:R3C45;"+") ошибка
Формула помещается так:
Код: plaintext
1.
2.
3.
4.
5.
6.
int Lang_ID=xl->LanguageInterfaceID();
AnsiString s,CountIf=Lang_ID==RUS_LANG ? "=СЧЕТЕСЛИ(" : "=COUNTIF(";
for(i=0;i<nSt;i++){
	s=CountIf+"R"+(FIRSTROW+i)+"C"+FIRSTCOL+":R"+(FIRSTROW+i)+"C"+(FIRSTCOL+nAllTask-1)+";\"+\")";
	xl->PutVal(FIRSTROW+i,ColNTask,s); // вот здесь
}



Сообщение: EOLEsysError "Ошибка"
в подчеркнутой строке
...
Рейтинг: 0 / 0
03.10.2018, 18:48
    #39712620
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В формуле счетесли(R3C5:R3C45;"+") ошибка
muk07,

А что записано в PutVal?
И раз уж определяете локализацию и в зависимости от неё название функции - то и разделители аргументов тоже надо определять. Для англ. как правило это запятая, а не точка-с-запятой.
...
Рейтинг: 0 / 0
03.10.2018, 18:50
    #39712621
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В формуле счетесли(R3C5:R3C45;"+") ошибка
muk07
Код: plaintext
1.
	s=CountIf+"R"+(FIRSTROW+i)+"C"+FIRSTCOL+":R"+(FIRSTROW+i)+"C"+(FIRSTCOL+nAllTask-1)+";\"+\")";


Что тут делает этот символ?
...
Рейтинг: 0 / 0
03.10.2018, 19:10
    #39712632
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В формуле счетесли(R3C5:R3C45;"+") ошибка
Akina,

он является как бы разделителем аргументов :) Т.е. переменная s - это формула в сборе, включая все аргументы. Т.е. собранная полноценная запись для вставки формулы в ячейку.
...
Рейтинг: 0 / 0
03.10.2018, 19:11
    #39712634
muk07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В формуле счетесли(R3C5:R3C45;"+") ошибка
Спасибо всем за участие.
...
Рейтинг: 0 / 0
03.10.2018, 20:11
    #39712665
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В формуле счетесли(R3C5:R3C45;"+") ошибка
muk07,

пожалуйста. А в чем дело-то все же было? Для будущих поколений делиться решением не хотите?
...
Рейтинг: 0 / 0
04.10.2018, 05:16
    #39712750
muk07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В формуле счетесли(R3C5:R3C45;"+") ошибка
ощибка как была так и осталась.
вернусь к excel 2007
велик и славен microsoft
...
Рейтинг: 0 / 0
04.10.2018, 07:32
    #39712768
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В формуле счетесли(R3C5:R3C45;"+") ошибка
The_Pristон является как бы разделителем аргументов :) Т.е. переменная s - это формула в сборе, включая все аргументы. Т.е. собранная полноценная запись для вставки формулы в ячейку.Я правильно понимаю, что если эту самую формулу внести на лист Excel руками, а потом получить при помощи какого-нибудь комплементарного xl->GetVal, то полученное значение в точности равно тому, что Вы пытаетесь отправить оператором xl->PutVal?
...
Рейтинг: 0 / 0
04.10.2018, 10:35
    #39712837
muk07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В формуле счетесли(R3C5:R3C45;"+") ошибка
Я, конечно, пробовал ввести эту формулу руками - не программно - эффект тот же.
...
Рейтинг: 0 / 0
04.10.2018, 11:07
    #39712861
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В формуле счетесли(R3C5:R3C45;"+") ошибка
muk07рукамиНет такой функции СЧЕТЕСЛИ, есть СЧЁТЕСЛИ

Используй подсказки
...
Рейтинг: 0 / 0
04.10.2018, 11:33
    #39712886
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В формуле счетесли(R3C5:R3C45;"+") ошибка
muk07,

и при включенном стиле ссылок А1 стиль R1C1 в формуле не прокатит.
...
Рейтинг: 0 / 0
04.10.2018, 12:14
    #39712915
muk07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В формуле счетесли(R3C5:R3C45;"+") ошибка
1)Действительно, готовя картинку, я написал СЧЕТЕСЛИ, но СЧЁТЕСЛИ даёт тот же результат
The_Pristи при включенном стиле ссылок А1 стиль R1C1 в формуле не прокатит.
Программа работает уже несколько лет. И всё прокатывало. Сменили версию Excel и вот тебе и пожалуйста.
...
Рейтинг: 0 / 0
04.10.2018, 12:18
    #39712918
muk07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В формуле счетесли(R3C5:R3C45;"+") ошибка
В другом месте сменили на Excel 2016 - там этот отчет вообще не работает.
Обнаружили, что по умолчанию число листов -1. Сменили на 2 и заработало.
Спрашивается, какое отношение имеет число листов к этой формуле?
Я и говорю:
Велик и славен microsoft.
...
Рейтинг: 0 / 0
04.10.2018, 17:15
    #39713140
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В формуле счетесли(R3C5:R3C45;"+") ошибка
muk07какое отношение имеет число листов к этой формуле?Вполне возможно, что прямое. Мы же не знаем в какой Вы там лист и как вставляете. Может там напрямую идет обращение именно ко второму листу.
muk07Программа работает уже несколько лет. И всё прокатывалоключевое слово - прокатывало.
Мои коды, например, не лажают ни в одной из версий, чтобы я там не вставлял. Поэтому не Microsoft здесь виноват, а разработчик того кода, который работает только в одной версии и только с двумя листами в книге :) Есть подозрение, что у Вас просто мало опыта работы именно с Excel, отсюда и такие косяки. Например, выше я уже указывал, что раз на разные локализации опираетесь при записи формулы - то и разделитель аргументов надо тоже под локализацию делать, а еще лучше определять из системы, а не везде лепить точку-с-запятой, опираясь лишь на
muk07Программа работает уже несколько лет. И всё прокатывало
...
Рейтинг: 0 / 0
05.10.2018, 08:33
    #39713323
muk07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В формуле счетесли(R3C5:R3C45;"+") ошибка
авторвыше я уже указывал,
Все разделители перепробованы были сразу. Не такой уж я...
Было бы лучше, если бы вместо указаний можно было бы прочитать
как следует писать.
...
Рейтинг: 0 / 0
05.10.2018, 09:04
    #39713334
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В формуле счетесли(R3C5:R3C45;"+") ошибка
muk07если бы вместо указаний можно было бы прочитать как следует писатьЧто мешает? Для определения разделителя есть ListSeparator в Application.International:
Код: vbnet
1.
Excel.Application.International(xlListSeparator)


не искал(не было необходимости), но думаю, что где-нибудь в реестре это тоже есть, если получить напрямую от Excel нет возможности(хотя это будет странно).
Разделитель вообще вещь такая. Написание функции может быть на английском, но при этом разделитель все же будет как для рус.локализации.
И опять же: следовало бы разобраться, что есть такое PutVal. Если именно значение ячейки(в случае с Excel) - то это не тоже самое, что формула.
Неясно, почему не используется тот же Interop или OLE для связи с Excel. Возможно, для этого есть причины, о которых мы не знаем. Но и Вы про них не говорите.
Потому как есть универсальные свойства Formula и FormulaR1C1. Туда записывается формула исключительно в английском написании с разделителем запятая. И никаких лишних бубнов. В любой локализации такая формула будет работать как положено.
...
Рейтинг: 0 / 0
05.10.2018, 10:31
    #39713398
muk07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В формуле счетесли(R3C5:R3C45;"+") ошибка
Putval ни при чём.
я непосредственно в excel руками не могу вписать формулу ни с какими разделителями.
...
Рейтинг: 0 / 0
05.10.2018, 10:39
    #39713404
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В формуле счетесли(R3C5:R3C45;"+") ошибка
muk07я непосредственно в excel руками не могу вписать формулу ни с какими разделителями.так на это уже ответили, в чем проблема

А программно как раз-таки и логично использовать FormulaR1C1
...
Рейтинг: 0 / 0
05.10.2018, 10:49
    #39713409
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В формуле счетесли(R3C5:R3C45;"+") ошибка
muk07я непосредственно в excel руками не могу вписать формулуможет потому, что вписывать надо как того требует программа, а не как Вы себе придумали?
-Установите стиль ссылок в Excel R1C1(Файл -Параметры -Формулы -Использовать стиль ссылок R1C1)
-убедитесь, что язык для формул используется русский
-убедитесь в правильности написания самой формулы и ссылок(в ссылках не должно быть кириллицы)
Код: plaintext
=СЧЁТЕСЛИ(R3C3:R3C10;"+")
в стиле А1
Код: plaintext
=СЧЁТЕСЛИ($C$3:$J$3;"+")
или англ
Код: plaintext
=COUNTIF(R3C3:R3C10,"+")
Тогда поймете, что Excel все делает правильно, в отличии от Вас
...
Рейтинг: 0 / 0
05.10.2018, 11:11
    #39713420
muk07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В формуле счетесли(R3C5:R3C45;"+") ошибка
Си++ класс, написанный мной для создания отчётов в Excel через OLE 15 лет назад безупречно до сих пор работал.
Вы, наверное, сами не замечаете своего высокомерия. Ни одна ваша реплика не отвечает на поставленный вопрос.
Каждый раз следует ответ на подменённый вопрос.
Не утомляйте себя.
...
Рейтинг: 0 / 0
05.10.2018, 11:35
    #39713432
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В формуле счетесли(R3C5:R3C45;"+") ошибка
Я купил машину, ездил, расходники не менял, а зачем? Она безупречно ездила.
А теперь она сломалась. Но ваши высокомерные ответы про то, что масло все-таки надо было менять, я слушать не намерен.
...
Рейтинг: 0 / 0
05.10.2018, 14:06
    #39713582
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В формуле счетесли(R3C5:R3C45;"+") ошибка
muk07сами не замечаете своего высокомерияДа, именно мое высокомерие заставляет проявляться ошибки напрограммированного 15 лет назад чуда. А прочитать советы Вы, видимо, не в состоянии из-за опять же моего высокомерия.
muk07Каждый раз следует ответ на подменённый вопрос.
Это Вы, видимо, про себя. Потому что изначально был от меня такой вопрос:
The_Pristесть Formula, FormulaR1C1, FormulaLocal, FormulaLocalR1C1. Что используете Вы и в каком виде?
Где ответ?
The_PristА что записано в PutVal?
Где ответ? Правильно, автор его зажал, как и многое другое.
А на остальные вещи Вы получили ответ, но вот дать ответ на встречные вопросы Вы уже были почему-то не в состоянии.

На то, что Вы даже руками формулу не можете ввести без ошибки(на скрине Вы это продемонстрировали) Вы получили ответ сразу и разъяснение почему ошибка может быть вообще в этом случае(стиль ссылок не соблюли). Но нафиг это Вам читать и вдумываться, когда все эти косяки можно просто свалить на Microsoft? Да, он не идеален. Но в данном случае виноват не он, а Вы, как разработчик того кода, который дает ошибку на элементарной записи. Все, добавить больше нечего. Вы просто не хотите искать и понимать ошибку - проще остаться на старой версии, где листов по умолчанию создается больше 1 и стиль ссылок, видимо, тоже всегда А1. Но это все до поры до времени. Когда-нибудь и это даст осечку и виноватых дальше самого себя искать будет негде. И ответы на вопросы при таком подходе - тоже.

Удачи в разработках!
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / В формуле счетесли(R3C5:R3C45;"+") ошибка / 25 сообщений из 26, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]