我正在寻找与此处发布的解决方案类似的内容:
问题是,这似乎无法与其中的功能一起工作。
这是克里斯尼尔森 (chris neilsen) 在该线程中提交的函数:
Function ev(r As Range) As Variant
ev = Evaluate(r.Value)
End Function
下面是我想要转换为公式的字符串的示例:
=(INDEX(DataV,1,4)/INDEX(DataV,2,4))*100
DataV 是电子表格内的名称。
我不确定如何去做,也许我会弄清楚,现在看来,除非我阅读更多有关 VBA 的内容,否则我可能不会明白。
任何帮助都将受到赞赏。
答案1
我只是想分享一下我最终采用的解决方案,因为它确实有效。无法创建执行此操作的用户定义函数,这似乎不可能,所以我使用了基本的宏。
Sub Formulas()
Dim rng As Range, cell As Range, y As Integer, o As Integer
y = Range("B1").Value
o = (y - 3) * 2
Set rng = Range(Cells(3, 4), Cells(3, y))
On Error GoTo ErrHandler
For Each cell In rng
cell.Activate
cell.Formula = ActiveCell.Offset(0, o).Value
Next cell
Exit Sub
ErrHandler:
Msg = "Invalid formula for this Indicator, please re-check in sheet IndDef"
MsgBox Msg, , "Error!", Err.HelpFile, Err.HelpContext
End Sub
这个是为与按钮一起使用而编写的,如果您希望自动运行宏,请查看此站点以获取有关使用相交的提示。
问题的关键部分是:
cell.Activate
cell.Formula = ActiveCell.Offset(0, o).Value
只需将单元格的公式定义为带有字符串的值
Range1.Formula = Range2.Value
在我的例子中,我想让它遍历一堆单元格,因此需要激活相当于 Range1 的函数,并使用 ActiveCell.Offset 来定义相当于 Range2 的函数
适用于任何字符串,但函数确实需要用英语编写。希望这能有所帮助。