excel 4.0宏评估

时间:2018-05-16 22:24:06

标签: excel vba excel-vba excel-formula

我正在尝试评估Excel中的等式,其中操作由单元格的值确定。例如,假设我在@class='direction'中有一个等式=IMPORTXML(A1,"//table[@class='leaguetable sortable table detailed-table']//tr/td[@class='direction' and not(*)] | //table[@class='leaguetable sortable table detailed-table']//tr/td[@class='direction']/img/@src")的等式。我希望评估该单元格for file in pdf_list: file_name = os.path.basename(file) upload.file(file_name) 。我能够使用A2来确定操作,连接以将数字与操作相结合,并在命名范围内使用Excel 4.0宏函数EVALUATE来评估文本字符串作为数字。

现在,我想在VBA中做同样的事情(我仍然有Excel表格中的操作查找图表,即100 (operation) 100if A1 = 1, then 100*100, if 2 then 100/100, if 3 then 100+100, if 4 then 100-100等。如果没有if / then / else语句,有没有办法做到这一点?

2 个答案:

答案 0 :(得分:1)

Function Eval(eq, op)
    Eval = Application.Evaluate("=" & Replace(eq, "(operation)", Mid("*/+-", op, 1)))
End Function

如果您的等式包含单元格引用,请务必使用Worksheet.Evaluate表单,作用于正确的工作表...

答案 1 :(得分:0)

另一种方法,使用选择案例:

Function Calc(eq As Integer, op As Double) As Double
    Select Case eq
        Case 1: Calc = op * op
        Case 2: Calc = op / op
        Case 3: Calc = op + op
        Case 4: Calc = op - op
        Case Else: Calc = 0
    End Select
End Function