Добрый день, есть данная формула и хочу сделать так, что бы можно было ее вставлять в любую ячейку и при этом происходил запрос D, La, E (например в форме всплывающего окна), возможно ли такое реализовать? Например, писать =кайтц("значение D"; "значение La"; "значение E") или просто =кайтц, а тебе выдает всплывающее окно с полями по эти параметры Заранее спасибо за ответы!
Добрый день, есть данная формула и хочу сделать так, что бы можно было ее вставлять в любую ячейку и при этом происходил запрос D, La, E (например в форме всплывающего окна), возможно ли такое реализовать? Например, писать =кайтц("значение D"; "значение La"; "значение E") или просто =кайтц, а тебе выдает всплывающее окно с полями по эти параметры Заранее спасибо за ответы!McBorsch
Сообщение отредактировал McBorsch - Пятница, 24.11.2017, 13:22
Спасибо за ответ. Однако формула по какой-то причине не работает. Макрос записал, ввожу =fr(, запрашивает данные, выдает результат - всегда 0. Какие бы данные ни ввел. Формулу проверил уже. Есть идеи, почему так может быть?
И сразу еще один вопрос, как можно прописать в макросе, что бы вычисленное значение после расчета форматировалось из формулы в число?
Заранее спасибо!
Спасибо за ответ. Однако формула по какой-то причине не работает. Макрос записал, ввожу =fr(, запрашивает данные, выдает результат - всегда 0. Какие бы данные ни ввел. Формулу проверил уже. Есть идеи, почему так может быть?
И сразу еще один вопрос, как можно прописать в макросе, что бы вычисленное значение после расчета форматировалось из формулы в число?
Спасибо за ответы, разобрался с причинами. 1. Pi он не читает, ввел 3.14 - все заработало 2. Значения D, E и La в макросе нужно устанавливать максимально допустимые при расчетах. При данном выше варианте макроса, если ввести D>0.5, выводит в ячейке #ЗНАЧ! ну и т.д.
Осталось только понять, как в макрос добавить действие по переводу вычисленной формулы в число
Спасибо за ответы, разобрался с причинами. 1. Pi он не читает, ввел 3.14 - все заработало 2. Значения D, E и La в макросе нужно устанавливать максимально допустимые при расчетах. При данном выше варианте макроса, если ввести D>0.5, выводит в ячейке #ЗНАЧ! ну и т.д.
Осталось только понять, как в макрос добавить действие по переводу вычисленной формулы в числоMcBorsch
У Вас не макрос, а UDF-ка, она не может сама себя стереть и записаться числом
ну, буду по-старинке ctrl-c -> ctrl-v
Решил изменить имя формулы с fr на кайтц, перестал считать ее. в строке формулы "=кайтц()", в ячейке "#ИМЯ?". Нельза на русской название функции задавать?
У Вас не макрос, а UDF-ка, она не может сама себя стереть и записаться числом
ну, буду по-старинке ctrl-c -> ctrl-v
Решил изменить имя формулы с fr на кайтц, перестал считать ее. в строке формулы "=кайтц()", в ячейке "#ИМЯ?". Нельза на русской название функции задавать?McBorsch
Сообщение отредактировал McBorsch - Понедельник, 27.11.2017, 10:57
имя функции задается в коде, а в ячейке вы её по этому имени вызываете а вот эта строчка собсвенно делает расчет и присваивает вычисленное значение функции, которое затем отображается в ячейке [vba]
имя функции задается в коде, а в ячейке вы её по этому имени вызываете а вот эта строчка собсвенно делает расчет и присваивает вычисленное значение функции, которое затем отображается в ячейке [vba]
имя функции задается в коде, а в ячейке вы её по этому имени вызываете а вот эта строчка собсвенно делает расчет и присваивает вычисленное значение функции, которое затем отображается в ячейке
понял ошибку, изменил только в заголовке кода fr на кайтц.
Спасибо =)
Изменил, как Вы описали, и все равно в ячейке появляется #ИМЯ? Т.е. при таком коде: [vba]
Код
Function КАЙТЦ() Dim D_, E_, A_, La_ D_ = InputBox("Расстояние от оси лампы до торца датика в метрах", , 10) E_ = InputBox("Мощность потока излучения УФ в Вт/м2", , 10) La_ = InputBox("Межэлектродное расстояние в метрах", , 10) A_ = 0.104 КАЙТЦ = (2 * E_ * (WorksheetFunction.Pi() ^ 2) * D_ * La_ * 0.86) / (2 * A_ + Sin(2 * A_)) End Function
имя функции задается в коде, а в ячейке вы её по этому имени вызываете а вот эта строчка собсвенно делает расчет и присваивает вычисленное значение функции, которое затем отображается в ячейке
понял ошибку, изменил только в заголовке кода fr на кайтц.
Спасибо =)
Изменил, как Вы описали, и все равно в ячейке появляется #ИМЯ? Т.е. при таком коде: [vba]
Код
Function КАЙТЦ() Dim D_, E_, A_, La_ D_ = InputBox("Расстояние от оси лампы до торца датика в метрах", , 10) E_ = InputBox("Мощность потока излучения УФ в Вт/м2", , 10) La_ = InputBox("Межэлектродное расстояние в метрах", , 10) A_ = 0.104 КАЙТЦ = (2 * E_ * (WorksheetFunction.Pi() ^ 2) * D_ * La_ * 0.86) / (2 * A_ + Sin(2 * A_)) End Function
[/vba] и вводе =КАЙТЦ() выдает в ячейке #ИМЯ?McBorsch
Сообщение отредактировал McBorsch - Понедельник, 27.11.2017, 11:12
Если невозможно преобразовать после вычисления формулу в ее результат
если добавить такой код на лист [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False If Target.FormulaR1C1 = "=КАЙТЦ()" Then Target.FormulaR1C1 = Target.Value Application.EnableEvents = True End Sub
[/vba] то вместо формулы в ячейке будете получать расчетные данные
Если невозможно преобразовать после вычисления формулу в ее результат
если добавить такой код на лист [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False If Target.FormulaR1C1 = "=КАЙТЦ()" Then Target.FormulaR1C1 = Target.Value Application.EnableEvents = True End Sub
[/vba] то вместо формулы в ячейке будете получать расчетные данныеK-SerJC