私はいくつかの助けを必要とします。 Excel 2007を使用しています。 私はこれを行うことさえできていません。 私は効率を維持し、アプリケーションが使用されない場合は速度を上げる必要があります。VBAを変数に代入し、変数を使用して式を評価します
基準をテストするための 'IF'文があります。 結果に応じて、後で使用するためにいくつかの数式のうちの1つを変数に割り当てる必要があります。 結果を配列を構築するために2番目の変数に格納できるように、式を評価する変数を持つ必要があります。
サンプルコード:
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"
プログラムは、その後、いくつかの列と行をループは、それゆえ、なぜ変数が必要とされます。私はこの時点で2つのオプションを持っています: 1)は、配列を構築することですし、2番目のループで適切なセルに配列の結果を貼り付けることができます。 または 2)私は、各セルをループだとして、私は、セルに数式の結果を移入
が提案やアイデア
私は ""を使用して試しましたが、これは変数として式に変数を適用しましたが、[]を使って試しましたが、式を実行して結果を変数に適用したいとします。 – rchrysler