Excel 变量中的公式
我有以下问题,是否可以在VBA Excel中的变量中插入公式以在之后使用此变量? 例如:Excel 变量中的公式,excel,vba,excel-formula,Excel,Vba,Excel Formula,我有以下问题,是否可以在VBA Excel中的变量中插入公式以在之后使用此变量? 例如: MinO = "=MIN(" & .Cells(3, 7 + NumSheet).Address(False, False) & ":" & .Cells(3, 9 + NumSheet).Address(False, False) & ")" For N = 1 To NumSheet + 1 .Cell
MinO = "=MIN(" & .Cells(3, 7 + NumSheet).Address(False, False) & ":" & .Cells(3, 9 + NumSheet).Address(False, False) & ")"
For N = 1 To NumSheet + 1
.Cells(4, 5 + N).Value = 80 * ((.Cells(3, 8 + NumSheet).Value - .Cells(3, 5 + N).Value) / (.Cells(3, 8 + NumSheet).Value - MinO))
.Cells(4, 5 + N).Font.Bold = True
Next N
所以MinO是一个里面有公式的变量,我在Range()中知道。公式可以工作,但如何使用变量使其工作?
我知道也有应用程序.WorksheetFunction.Min
,但我想看看它是否可以用另一种方式来做,因为WorksheetFunction有时会给我一些错误
非常感谢你的回答 您可以这样做,但因此需要该函数。(URL指该功能的官方文档)
因此,在您的情况下,您可以使用:(似乎不完全正确,所以我将在评论中加以说明)
如以下评论所述,以下方法似乎是正确的:
MinO = Evaluate("=MIN(" & .Cells(3, 7 + NumSheet).Address(False, False) & ":" & .Cells(3, 9 + NumSheet).Address(False, False) & ")")
我认为这行不通,因为它基本上只是一个文本字符串。我相信您会尝试研究为什么Application.worksheet函数会给出错误,或者如果您有一些工作表函数无法处理的特殊情况,您会创建自己的函数。通常,当我使用excel中的公式时,我会将它们写入单元格(检查所有内容是否正常),然后写入VBA即时窗口(CTRL+G)我打字
或
它会显示你需要的公式。。。这是一个好的开始,然后您开始更改零件以反映所需的变量更改
请记住,此输出是字符串,在代码中需要以1x开头和结尾,当您要在公式中添加字符串时,您需要添加“”有时您还需要为字符串中的字符串添加“”和“”。:) 请看一下Evaluate
方法。是的,我已经检查过了,但是我不知道如何使用Cells()使其工作。
我找到了使用Evaluate()的方法,非常感谢!求值(Min(…)
会做一些与工作表函数.Min
不同的事情吗?不,我不这么认为。但是,OP可能会遇到他在使用工作表函数.Min
时提到的相同问题-只是形式复杂得多。我明白了,但是如果我把MinO=“=Min”(&.Cells(3,7+NumSheet)。地址(False,False)&“&.Cells(3,9+NumSheet).Address(False,False)&”)”
它在那里抛出了一个错误13。因此我也必须重写该行。您可能需要删除起始“=
在公式字符串中。它不是单元格中的公式。我也会尝试,谢谢。我不知道为什么它会给我带来问题,因为当我使用Min函数时,它不计算范围的Min,它只取范围的一个值,而不取Min。该基本文本字符串可以由Evaluate()处理
谢谢,但我终于找到了使用Evaluate()的方法,不过我会考虑您的选择:)
MinO = Evaluate("=MIN(" & .Cells(3, 7 + NumSheet).Address(False, False) & ":" & .Cells(3, 9 + NumSheet).Address(False, False) & ")")
? Activecell.Formula
? Activecell.FormulaR1C1