Страница: 1 |
Страница: 1 |
Вопрос: Простая формула, а не работает
Добавлено: 05.01.06 12:18
Автор вопроса: sonix
Все элементарно до безобразия.. В ячейку тупо вставляется формула.
Похожие конструкции работают, а эта нет..
Приведу промежуточные результаты используемые в формуле (хотя по большему счету они не должны влиять на ее работоспособность). Имя книги Расч_100.xls (а вообще есть много файлов (Расч_) с разными номерами).:
Берем из книги ее номер (в данном случае 100)
FNom = Left(Right(ThisWorkbook.Name, 7), 3)
KartPath = "[kart_" & FNom & ".xls]Карточка!"
Ошибка вылетает на этом этапе:
Здесь всталяется формула ссылающаяся на kart_100.xls:
Cells(2, 3).Formula = "=если(" & KartPath & "C31="""";"""";" & KartPath & "C31)"
Cells(3, 3).Select
Пробовал через Cells(2, 3).value - тоже самое.
В итоге в ячейку вставляется ето значение, но без "=":
если([kart_100.xls]Карточка!C31="";"";[kart_100.xls]Карточка!C31)
Кто знает - прошу помочь. Очень нужно.
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #1
Добавлено: 05.01.06 12:42
Formula задаёт формулу на английском языке.
Соответствие английский формул русским приведено в файле funcs.xls
Можно также использовать formulalocal, но работать будет только на русском экселе.
Номер ответа: 2
Автор ответа:
sonix
Вопросов: 1
Ответов: 1
Профиль | | #2
Добавлено: 05.01.06 15:30
Поменял на англ. формулы - не пошло.
А вот с formulalocal заработало.
БОЛЬШЕЕ спасибо.
Номер ответа: 3
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #3
Добавлено: 05.01.06 15:58
Не пошло потому, что надо ещё аргументы разделять запятыми, а не ;, и вообще, там всё как в языке программирования, независимо от локали.
А твой код сдуется не только на компе с нерусским экселем, но даже на компе, где ";" не стоит разделителем элементов списка...