Запишите вложенную функцию в Excel с помощью VBA

Я пытаюсь написать следующие вложенные формулы в ячейку CY6 с помощью VBA:

=IF(AND(CV6>MAX(BJ40,BJ5), CV6/MAX(BJ40,BJ5)>1.199999)," Moment Resistance Mr > Factored Moment Mf =" & ROUND(MAX(BJ40,BJ5),2)  & ". Mr/Mf =" & ROUND(CV6/MAX(BJ40,BJ5),2) & ". Proceed to Crack Control Step =>", " Moment Ratio Mr/Mf is Smaller than 1.2, Increase Steel Area. Mr/Mf=" & ROUND(CV6/BJ40,2))

Код, который я пытался использовать, прост

Range("CY6").value = " =IF(AND(CV6>MAX(BJ40,BJ5), CV6/MAX(BJ40,BJ5)>1.199999)," Moment Resistance Mr > Factored Moment Mf =" & ROUND(MAX(BJ40,BJ5),2)  & ". Mr/Mf =" & ROUND(CV6/MAX(BJ40,BJ5),2) & ". Proceed to Crack Control Step =>", " Moment Ratio Mr/Mf is Smaller than 1.2, Increase Steel Area. Mr/Mf=" & ROUND(CV6/BJ40,2)) "  

Я также пробовал то же самое, используя

worksheets("sheet1").range("CY6").formula= "...."

Однако он возвращает «ожидаемую ошибку компиляции: конец оператора» и выделяет момент слова (первый). Я думаю, это из-за кавычек, но я не уверен, как это должно работать.


person Mohamed R    schedule 29.03.2019    source источник
comment
Чтобы добавить комментарии и сортировку, вам нужно использовать амперсанд между информацией, например: range(cy6).formula = =if(cond=cond,1,0) &words; для дополнительных встроенных слов вам нужно открывать/закрывать кавычки, например =if(cond=cond,True,False)   -  person Cyril    schedule 29.03.2019
comment
(1) Удвойте все символы кавычек в строке, чтобы компилятор VBA знал, что вам нужен символ кавычек, а не конец строки. (2) Пользователь Range("CY6").formula назначает формулу, а не .value   -  person FunThomas    schedule 29.03.2019


Ответы (1)


Посмотрим на это...

=IF(AND(CV6>MAX(BJ40,BJ5), CV6/MAX(BJ40,BJ5)>1.199999)," Moment Resistance Mr > Factored Moment Mf =" & ROUND(MAX(BJ40,BJ5),2) & ". Mr/Mf =" & ROUND(CV6/MAX(BJ40,BJ5),2) & ". Proceed to Crack Control Step =>", " Moment Ratio Mr/Mf is Smaller than 1.2, Increase Steel Area. Mr/Mf=" & ROUND(CV6/BJ40,2))

range("cy6").formula = "=IF(AND(CV6>MAX(BJ40,BJ5), CV6/MAX(BJ40,BJ5)>1.199999),"" Moment Resistance Mr > Factored Moment Mf ="" & ROUND(MAX(BJ40,BJ5),2) & "". Mr/Mf ="" & ROUND(CV6/MAX(BJ40,BJ5),2) & "". Proceed to Crack Control Step =>"", "" Moment Ratio Mr/Mf is Smaller than 1.2, Increase Steel Area. Mr/Mf="" & ROUND(CV6/BJ40,2))"
person Cyril    schedule 29.03.2019
comment
OMG вы, ребята, так быстро! Я думал, что мне придется вернуться завтра, но нет 10 минут. Огромное спасибо! - person Mohamed R; 29.03.2019
comment
@MohamedR это сработало для вас? если это так, отметьте его как «ответил» (галочка слева от сообщения), чтобы это было соответствующим образом помечено при поиске. - person Cyril; 29.03.2019