Деление на пользовательское значение ввода в расчете формулы VBA - PullRequest
0 голосов
/ 26 февраля 2020

Я застрял при использовании десятичного числа, введенного пользователем (конвертация валюты, например, 1.12) в расчете по моей формуле. Я не уверен, как ссылаться на myvalue в формуле, а также, если мне нужно затемнить его как double или vartype?

Введенное значение, например, 1.12, должно использоваться во всех 3 строках диапазона для расчета , но теперь я получаю ошибку имени, так как формула не распознает myvalue после запуска макроса. Что я делаю не так с определениями?


' convert_in_EUR_column_GHL Macro

Dim gRow As Long, hRow As Long
Dim myvalue As Double

gRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, 7).End(xlUp).Row
hRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, 8).End(xlUp).Row

myvalue = InputBox("Enter 2 decimal currency conversion rate")


Range("M2").Resize(gRow).FormulaR1C1 = "=IFERROR(IF(IFERROR(RC[-6]/myvalue,"""")=0,"""",RC[-6]/myvalue),"""")"
Range("N2").Resize(hRow).FormulaR1C1 = "=IF(IFERROR(RC[-6]/myvalue,"""")=0,"""",RC[-6]/myvalue)"
Range("O2").Resize(hRow).FormulaR1C1 = "=IF(IFERROR(RC[-3]/myvalue,"""")=0,"""",RC[-3]/myvalue)"


1 Ответ

1 голос
/ 26 февраля 2020

Вы неправильно его реализуете.

Range("M2").Resize(gRow).FormulaR1C1 = "=IFERROR(IF(IFERROR(RC[-6]/myvalue,"""")=0,"""",RC[-6]/myvalue),"""")"

Должно быть

Range("M2").Resize(gRow).FormulaR1C1 = "=IFERROR(IF(IFERROR(RC[-6]/" & myvalue & ","""")=0,"""",RC[-6]/" & myvalue & "),"""")"

, так как формула не сможет оцените myvalue часть, которая является переменной, хранящейся в памяти. Точно так же вы должны быть в состоянии исправить другие формулы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...