Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Не вставляется формула в ячейку - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Не вставляется формула в ячейку (Макросы/Sub)
Не вставляется формула в ячейку
akobir Дата: Среда, 28.10.2015, 16:26 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 201
Репутация: 9 ±
Замечаний: 0% ±

Excel 2010
Добрый день!

Есть два числа: курс валюты (четыре знака после запятой) и сумма в валюте (максимум два знака после запятой).
При перемножении выдает ошибку.
Насколько я понял, вся проблема в знаках после запятой.
Голову сломал, решить не могу. :)

Буду признателен.
Пример прикладываю.
К сообщению приложен файл: 123.xlsm (14.6 Kb)


e-mail: akobir.ismailov@gmail.com
 
Ответить
СообщениеДобрый день!

Есть два числа: курс валюты (четыре знака после запятой) и сумма в валюте (максимум два знака после запятой).
При перемножении выдает ошибку.
Насколько я понял, вся проблема в знаках после запятой.
Голову сломал, решить не могу. :)

Буду признателен.
Пример прикладываю.

Автор - akobir
Дата добавления - 28.10.2015 в 16:26
Pelena Дата: Среда, 28.10.2015, 16:50 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19187
Репутация: 4421 ±
Замечаний: ±

Excel 365 & Mac Excel
При перемножении 2000 и 65, 0009 получается 130001,8
В чём ошибка?


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеПри перемножении 2000 и 65, 0009 получается 130001,8
В чём ошибка?

Автор - Pelena
Дата добавления - 28.10.2015 в 16:50
Wasilich Дата: Среда, 28.10.2015, 19:11 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
У него формула макросом не вставляется. :)
[vba]
Код
ThisWorkbook.Sheets(1).Cells(5, 3).Formula = "=C3*C4"
[/vba]


Сообщение отредактировал Wasilic - Среда, 28.10.2015, 19:36
 
Ответить
СообщениеУ него формула макросом не вставляется. :)
[vba]
Код
ThisWorkbook.Sheets(1).Cells(5, 3).Formula = "=C3*C4"
[/vba]

Автор - Wasilich
Дата добавления - 28.10.2015 в 19:11
akobir Дата: Четверг, 29.10.2015, 09:28 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 201
Репутация: 9 ±
Замечаний: 0% ±

Excel 2010
Товарищи, посмотрите код и все станет понятно. :)
Формула действительно не вставляется макросом, если значения из ячеек заданы в переменную. Вопрос в том - почему?


e-mail: akobir.ismailov@gmail.com
 
Ответить
СообщениеТоварищи, посмотрите код и все станет понятно. :)
Формула действительно не вставляется макросом, если значения из ячеек заданы в переменную. Вопрос в том - почему?

Автор - akobir
Дата добавления - 29.10.2015 в 09:28
buchlotnik Дата: Четверг, 29.10.2015, 09:45 | Сообщение № 5
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
потому что передаёте значение с региональными настройками - VBA клинит от четырёх знаков после запятой - для него запятая - разделитель тысяч. Решаем либо заменой запятой на точку [vba]
Код
Sub test()
Dim kurs As Double
Dim a As Double
Dim s As String

    kurs = ThisWorkbook.Sheets(1).Cells(3, 3)
    a = ThisWorkbook.Sheets(1).Cells(4, 3)
    s = "=" & kurs & "*" & a
    s = Replace(s, ",", ".")
    ThisWorkbook.Sheets(1).Cells(5, 3).Formula = s
    
End Sub
[/vba]либо вставкой формулы с учётом локалей[vba]
Код
Sub test2()
Dim kurs As Double
Dim a As Double
Dim s As String

    kurs = ThisWorkbook.Sheets(1).Cells(3, 3)
    a = ThisWorkbook.Sheets(1).Cells(4, 3)
    s = "=" & kurs & "*" & a
    
    ThisWorkbook.Sheets(1).Cells(5, 3).FormulaLocal = s
    
End Sub
[/vba] как-то так
К сообщению приложен файл: _123.xlsm (15.7 Kb)
 
Ответить
Сообщениепотому что передаёте значение с региональными настройками - VBA клинит от четырёх знаков после запятой - для него запятая - разделитель тысяч. Решаем либо заменой запятой на точку [vba]
Код
Sub test()
Dim kurs As Double
Dim a As Double
Dim s As String

    kurs = ThisWorkbook.Sheets(1).Cells(3, 3)
    a = ThisWorkbook.Sheets(1).Cells(4, 3)
    s = "=" & kurs & "*" & a
    s = Replace(s, ",", ".")
    ThisWorkbook.Sheets(1).Cells(5, 3).Formula = s
    
End Sub
[/vba]либо вставкой формулы с учётом локалей[vba]
Код
Sub test2()
Dim kurs As Double
Dim a As Double
Dim s As String

    kurs = ThisWorkbook.Sheets(1).Cells(3, 3)
    a = ThisWorkbook.Sheets(1).Cells(4, 3)
    s = "=" & kurs & "*" & a
    
    ThisWorkbook.Sheets(1).Cells(5, 3).FormulaLocal = s
    
End Sub
[/vba] как-то так

Автор - buchlotnik
Дата добавления - 29.10.2015 в 09:45
Pelena Дата: Четверг, 29.10.2015, 09:46 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 19187
Репутация: 4421 ±
Замечаний: ±

Excel 365 & Mac Excel
Может быть, потому что десятичные дроби в VBA должны быть с точкой?
Вот так работает
[vba]
Код
ThisWorkbook.Sheets(1).Cells(5, 3).Formula = Replace("=" & kurs & "*" & a, ",", ".")
[/vba]
Опоздала малость :)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеМожет быть, потому что десятичные дроби в VBA должны быть с точкой?
Вот так работает
[vba]
Код
ThisWorkbook.Sheets(1).Cells(5, 3).Formula = Replace("=" & kurs & "*" & a, ",", ".")
[/vba]
Опоздала малость :)

Автор - Pelena
Дата добавления - 29.10.2015 в 09:46
Wasilich Дата: Четверг, 29.10.2015, 09:49 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
Формула действительно не вставляется макросом, если значения из ячеек заданы в переменную.
Макросом переменные в ячейку не вставляются, а разве должны? %) Или я чего то не знаю? :( Ааа, понял надо было вставить значение переменных. :)
ЗЫ: А я поторопился с глупым вопросом. :D


Сообщение отредактировал Wasilic - Четверг, 29.10.2015, 10:13
 
Ответить
Сообщение
Формула действительно не вставляется макросом, если значения из ячеек заданы в переменную.
Макросом переменные в ячейку не вставляются, а разве должны? %) Или я чего то не знаю? :( Ааа, понял надо было вставить значение переменных. :)
ЗЫ: А я поторопился с глупым вопросом. :D

Автор - Wasilich
Дата добавления - 29.10.2015 в 09:49
akobir Дата: Пятница, 30.10.2015, 12:06 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 201
Репутация: 9 ±
Замечаний: 0% ±

Excel 2010
Pelena, Каюсь, не знал.

Всем спасибо!


e-mail: akobir.ismailov@gmail.com
 
Ответить
СообщениеPelena, Каюсь, не знал.

Всем спасибо!

Автор - akobir
Дата добавления - 30.10.2015 в 12:06
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Не вставляется формула в ячейку (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!