×
×
Закрытая тема
Показано с 1 по 6 из 6
  1. #1
    Аноним
    Гость

    Глюк при создании макроса в Еxcel

    Помогите!
    Начал изучать макросы по книжке, и в первый же день - такой облом.
    Приводится пример простенького макроса (совсем для чайников, коим я и являюсь) При выполнении этого макроса в ячейке, где должен отображаться результат вычисления, появляется #ИМЯ? Я вхожу в эту ячейку (щелчком мыши или через F2) и просто нажимаю Enter - только тогда отображается корректный результат (сумма значений). Что делать и как с этим бороться? Текст макроса привожу ниже

    Public Sub Моя_первая_программа()

    Range("c2").Select
    ActiveCell.Value = InputBox("Введите значение")
    Range("c3").Select
    ActiveCell.Value = InputBox("Введите значение")
    Range("c4").Select
    ActiveCell.Value = InputBox("Введите значение")
    Range("c5").Select
    ActiveCell.Value = InputBox("Введите значение")
    Range("c6").Select
    ActiveCell.Value = InputBox("Введите значение")
    Range("c7").Select
    ActiveCell.Formula = "=СУММ(c2:c6)"
    ActiveWorkbook.SaveAs Filename:="Моя_первая_программа.xls"

    End Sub
    Поделиться с друзьями

  2. #2
    Клерк
    Регистрация
    04.12.2003
    Адрес
    г.Москва
    Сообщений
    1,576
    ActiveCell.Formula = "=СУММ(c2:c6)"
    Я так думаю, что надо использовать не .Formula, а .FormulaLocal
    Ибо VBA заточен под аглицкую версию, а Вы используете формулу для российской.
    Все, что может быть - случается. Все что не может быть - тоже случается, причем значительно чаще...

  3. #3
    Аноним
    Гость

    Глюк при создании макроса в Excel

    Цитата Сообщение от Пытливый
    Я так думаю, что надо использовать не .Formula, а .FormulaLocal
    Ибо VBA заточен под аглицкую версию, а Вы используете формулу для российской.
    Спасибо, помогло! А вот еще вопросик - где найти "таблицу соответствия" руских/нерусских формул? Книжка, как ни странно, написана американцем...

  4. #4
    Клерк
    Регистрация
    04.12.2003
    Адрес
    г.Москва
    Сообщений
    1,576
    Аноним, в локальной версии программы справка идет по синтаксису функций для локальной версии.
    Что такое .FormulaLocal ? при использовании этого метода макрос, независимо от того в какой версии программы будешь его запускать (турецкой, аглицкой, немецкой и т.д.) будет преобразовывать написанную формулу в соответствующую локальную. Так что не ищите "таблицу соответствий", а используйте метод .FormulaLocal и будет вам счастье! :О)
    Все, что может быть - случается. Все что не может быть - тоже случается, причем значительно чаще...

  5. #5
    Клерк Аватар для Ботаник
    Регистрация
    21.09.2005
    Сообщений
    2
    Можно воспользоваться макрорекордером: Сервис -> Макрос -> Начать запись.
    Заносите в ячейку функцию, выбирая её из списка (там много функций в русской транскрипции). Затем смотрите, что Ёксель написал в макросе - в нём будет та же функция в латинице.

  6. #6
    Клерк
    Регистрация
    26.12.2001
    Адрес
    Иваново
    Сообщений
    365
    То, что Вы хотите (соответствие английских, то бишь американских функций русским, находится - обычно - по адресу: C:\Program Files\Microsoft Office\Office10\1049\FUNCS.XLS
    В макросе можно писать "=Sum..." или, как правильно Вам подсказывают, через FormulaLocal.
    Успехов в изучении книжек (хороших мало, я рекомендую авторов: Дж. Уокенбах (John Walkenbach) и Кен Гетц (Ken Getz), последний - в разных соавторствах)
    (под)опытный клерк

Закрытая тема

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы можете создавать новые темы
  • Вы можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •