我正在尝试评估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) 100
,if A1 = 1, then 100*100, if 2 then 100/100, if 3 then 100+100, if 4 then 100-100
等。如果没有if / then / else语句,有没有办法做到这一点?
答案 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