1

あるシートから値を取得し、Excelのマクロを使用して別のシートに配置しています。私は現在これを持っていますが、これはうまく機能します:

sheet.range("B2:B35").Value = "=IF(SUMPRODUCT(--(Raw!$B$11:$B$322=$A2),--(Raw!$D$11:$D$322=All!$B$2),Raw!$H$11:$H$322)<>0,SUMPRODUCT(--(Raw!$B$11:$B$322=$A2),--(Raw!$D$11:$D$322=All!$B$2),Raw!$H$11:$H$322),""-"")"

明らかに、その数式全体をセルの値として配置します。数式の結果をセルに入れるだけです。「IF...」の部分の周りにEvaluate()を追加しようとしましたが、IFが正しく評価されません(各セルに「-」が表示されるだけです)。これを行うことは可能ですか、それともループして値をセルの値に変更するための個別のコードが必要ですか?

4

1 に答える 1

4

使用する:

sheet.range("B2:B35").Formula = "Your formula here"

それが機能しない場合は、フォーマットを変更する必要があるかもしれません(最初にこれを行ってください):

sheet.range("B2:B35").NumberFormat = "General"

編集:

解決策は、OPのコードの後に​​次の行を追加することであることが判明しました。

sheet.range("B2:B35").value = sheet.range("B2:B35").value
于 2012-10-04T23:58:01.087 に答える