|
元々は計算式ごとにセルに入力していたけど、従業員全員に対して繰り返す処理をする際に時間がかかることから、一括して入力するように修正したら、数式として認識してくれなくなりました。
ただし、モジュール終了後に、
1.RC形式を使用するのチェックを付け
2.入力し直し(F2 & Enter)すると、認識します。
Function 計算式1(r as range) as string
計算式1 = "ホニャララ"
'計算式2と計算式3も同様
End Function
sub 問題となっている代入()
Const 計算式1str = "=計算式1(RC[" & 対象列 - 計算式1列 & "])"
Const 計算式2str = "=計算式2(RC[" & 対象列 - 計算式2列 & "])"
Const 計算式3str = "=計算式3(RC[" & 対象列 - 計算式3列 & "])"
Const 合計式str = "=sum(RC[-3]:RC[-1])"
'実際は、計算式はもっといっぱいある。
Dim FuncStr() As String: ReDim FuncStr(日数, 合計列 - 計算式1列 + 1)
For i = 1 To 日数
FuncStr(i, 計算式1列 - 23) = 計算式1str
FuncStr(i, 計算式2列 - 23) = 計算式2str
FuncStr(i, 計算式3列 - 23) = 計算式3str
FuncStr(i, 合計列 - 23) = 合計式str
Next
'次の代入は、以前はFuncstrを使わずに直接、かつ計算式毎に代入していた。
シート.Cells(入力開始行, 計算式1列).Resize(日数, 合計列 - 計算式1列).FormulaR1C1 = FuncStr
'次の式を入れるとそのセルのみ、ちゃんと数式として認識します。
シート.Cells(入力開始行, 計算式1列).Formula = シート.Cells(入力開始行, 計算式1列).Formula
end sub
何が問題なんだか分りません。
教えていただけると大変助かります。
|
|