VBA Excel: Формула

Нарив в загашнику ще одну цікаву функцію для Excel. Виникла в мене потреба дати користувачеві самому скласти простеньку формулу з однією змінною (їх, насправді строго дві, але принцип зрозумілий і на одній). Скласти прямо на аркуші, не після знака “=”, а щоб видно було. Результат обчислення використовується в багатьох інших місцях.


“StrVar – значення змінної “StrFormula – рядок, що містить саму формулу, місце, куди треба”Підставити змінну, позначено символами VAR
Function sheetFormula(strVar As String, strFormula As Variant) As Variant”Якщо формула порожня, не витрачаємо ресурси
If strFormula = “” Then Exit Function”Юзер – дурень, приберемо крайні прогалини
strFormula = Trim(strFormula)”Чим возитися з параметрами заміни, простіше все перевести”У верхній регістр
strFormula = UCase(strFormula)”Підставляємо змінну простою заміною
strFormula = Replace(strFormula, “VAR”, CStr(strVar))”Мій (ну чому тільки мій?!) Фірмовий фінт:”Замінюємо кому на крапку, дозволяючи користувачеві”Використовувати будь-який з цих знаків
strFormula = Replace(strFormula, “,”, “.”)”Обчислюємо все за допомогою функції Evaluate.”Конструкція виглядає загадково, але тільки так я”Добився від цієї функції стабільної роботи.”Що вона там собі думає, не знаю.
sheetFormula = Evaluate(CStr(strFormula) + “+0”)
End Function

Тепер можна попросити користувача в одній комірці вбити значення змінної, в іншій – формулу, а результат використовувати по всій книзі.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*