SQLクエリから手動で挿入する場合のみ、CopyFromRecordsetを挿入すると式が再計算されません。Excel VBA:数式をCopyFromRecordsetで使用できません。手動で挿入した場合のみ
SQLテーブルへの接続が設定されています。これは、行セットを返してテーブルに挿入します。同じシートには、データの横の列にいくつかの数式(SUM.IFの種類)があります。接続は正常に動作し、挿入されたデータは正常に見えます。 SQLクエリからデータをコピーしてExcelシートに挿入すると、数式が再計算されて動作します。 CopyFromRecordsetを使用すると、数式は再計算されず、単に " - "が出力されます。
セルの書式は変更されません。私がCopyFromRecordsetを挿入しても、数式は正しいように見えます。 再計算しようとすると、式が更新されないのはなぜですか?
sht.Select
//Selects old records and clears them
LastRow = sht.Cells(sht.Rows.Count, "B").End(xlDown).Row
Set DataRange = Range("A2:L" & LastRow)
DataRange.Select
DataRange.ClearContents
//Gets data from SQL query and inserts to sheet
strSQL = "selects column 1,2,3 from table"
rs.ActiveConnection = Conn
rs.Open strSQL, Conn, 1, 1
sht.Range("A2").CopyFromRecordset rs
をそして、私は私のSUM.IF式から得るすべては " - ":
コードは、私が使用しています。
再計算(Ctrl + Shift + Alt + F9)すると、数式が更新されますか?または、表示されたコードの後に 'sht.UsedRange.Calculate'を追加してみてください。 –
私は両方を試みましたが、それでも助けにはなりません。私は " - "を取得します。 – LRL
完全な数式の例を表示できますか?より単純な式(たとえば、単一セルへのリンク)も再計算されませんか?あなたは 'CalculateFullRebuild'を試しましたか? –