私はlistobject列ごとに一連の関数を持っています。ファイルは重くてクラッシュするので、各式の結果を静的な値として保持したいだけです。範囲に式を割り当てて、範囲を値に変換するようExcelに依頼することができます。しかし、式自体の代わりに範囲内の静的な値だけを書き込むようにVBAに依頼する方法があるかどうかは疑問です。ここで は、私がこれまで持っているものです:自分の質問への答えとしてVBAコードで式の結果をExcel範囲に直接書き込む方法
Sub calculate2()
Dim i As Long, t As Long
t = Timer
With Sheet3.ListObjects(1)
For i = 3 To 9
.ListColumns(i).DataBodyRange.ClearContents
.Range.Cells(2, i).Formula = sheets3.range("formula").cells(i,1).formula
.ListColumns(i).DataBodyRange = .ListColumns(i).DataBodyRange.Value
Next i
End With
Debug.Print Timer - t
End Sub
あなたは(2、I).Valueの= '.Range.Cellsを試してみました。 ListColumns(i)。合計 '? – UGP
ちょっと、実際には、私は数式を保持するために合計行を使用しています。このようなものがそこに保存されます。 '= IFERROR(IF(COUNTIFS( 'ZZ84'!$ B:$ B、[@ WO]、 'ZZ84'!$ E:$ E、 '= * V99'、 'ZZ84'!$ L:$ L (ZZ84)!$ G: 'ZZ84'!$ B:$ B、[@ WO]、 'ZZ84'!$ L:$ L、 ( "ZZ84"!$ G: 'ZZ84'!$ B:$ B、[@ WO])/ 10)/ 10 = 1,0,1-SUMIFS( 'ZZ84 '!$ G:' ZZ84 '!$ B:$ B、[@ WO]、' ZZ84 '!$ L:$ L、 "")/((SUMIFS(' ZZ84 '!$ G:$ G 、 "ZZ84"!$ B:$ B、[@ WO]))/ 10)/10-0.01))、 "") 'コードを変更しました。数式は=で始まるテキスト文字列です。 –