我需要一些帮助。 使用Excel 2007. 我甚至不确定这可以做到。 我需要保持效率和速度,否则应用程序将不会被使用。VBA将公式分配给变量,然后使用变量来评估公式
我有一个'IF'语句来测试一个标准。 取决于结果想要将几个可能的公式之一分配给变量供以后使用。 然后,我需要让变量来评估公式,以便可以将结果存储在第二个变量中以构建数组。
示例代码:
If (varEmployeeName = "(All)" Or varEmployeeName = "(Multiple Items)") Then
**varArrayFormula = "Application.WorksheetFunction.SumIfs(wsSumRange, wsLookupRange, wsLookupValue)"**
Else
**varArrayFormula = "Application.WorksheetFunction.SumIfs(wsSumRange, wsLookupRange, wsLookupValue, wsLookupRange2, varEmployeeName)"**
后来这个代码将执行:
ReDim varKPIArray(0 To varLastRow) ' creates the array size
For varCol = 10 To 13
For varRow = 8 To varLastRow
varDailyKPIHeading = ws.Cells(7, varCol).Value
Select Case varDailyKPIHeading
Case "PRODUCTIVITY"
Set wsSumRange = ThisWorkbook.Worksheets("DailyProductivity").Range("$G:$G")
Set wsLookupRange = ThisWorkbook.Worksheets("DailyProductivity").Range("$F:$F")
wsLookupValue = ws.Range("B" & varRow).Value
**varSumifValue = Application.Evaluate(varArrayFormula)**
varKPIArray(varRow - 8) = varSumifValue
Case "HOURS"
会再经过几列和行中循环,因此为什么需要程序中的变量。我现在有两个选项: 1)是建立一个数组,然后我可以将数组结果粘贴到第二个循环的适当单元格中。 或 2)当我通过每个细胞是循环我填充公式结果到小区
谢谢大家对您有所帮助,建议和想法
我试过使用“”但这适用公式作为字符串我已经尝试使用[]但这然后想要执行该公式并将结果应用于变量 – rchrysler