Есть два числа: курс валюты (четыре знака после запятой) и сумма в валюте (максимум два знака после запятой). При перемножении выдает ошибку. Насколько я понял, вся проблема в знаках после запятой. Голову сломал, решить не могу. :)
Буду признателен. Пример прикладываю.
Добрый день!
Есть два числа: курс валюты (четыре знака после запятой) и сумма в валюте (максимум два знака после запятой). При перемножении выдает ошибку. Насколько я понял, вся проблема в знаках после запятой. Голову сломал, решить не могу. :)
Товарищи, посмотрите код и все станет понятно. :) Формула действительно не вставляется макросом, если значения из ячеек заданы в переменную. Вопрос в том - почему?
Товарищи, посмотрите код и все станет понятно. :) Формула действительно не вставляется макросом, если значения из ячеек заданы в переменную. Вопрос в том - почему?akobir
потому что передаёте значение с региональными настройками - 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] как-то так
потому что передаёте значение с региональными настройками - 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
Формула действительно не вставляется макросом, если значения из ячеек заданы в переменную.
Макросом переменные в ячейку не вставляются, а разве должны? Или я чего то не знаю? Ааа, понял надо было вставить значение переменных. ЗЫ: А я поторопился с глупым вопросом.
Формула действительно не вставляется макросом, если значения из ячеек заданы в переменную.
Макросом переменные в ячейку не вставляются, а разве должны? Или я чего то не знаю? Ааа, понял надо было вставить значение переменных. ЗЫ: А я поторопился с глупым вопросом. Wasilich
Сообщение отредактировал Wasilic - Четверг, 29.10.2015, 10:13