2016-08-02 1 views
0

私はExcel RangePtrオブジェクトを持っており、対応するセルを式の代わりに値に変換しようとしています。私はVBAでこれをやっていますが、これは単にr.Value = r.Valueを使って行うことができます。C++でExcel RangePtrのValue = Valueを設定するにはどうすればよいですか?現在、私はHRESULTを取得0x80004005

rng->Value = rng->Value; 

をしかし、私はことを実行したとき、私はHRESULT 0x8004005から例外を取得:  C++では、私は、類似のアプローチを試みました。 Excelのチョークを引き起こすはずのセル値には何もありません。返される値はSAFEARRAYdoubleの値を含むちょうど_variant_tでなければなりません。だから私は何が間違っているの?

答えて

0

D'oh。 RangePtr.Valueのように見えるが、実際にVBAで存在していないXlRangeValueDataType定数を、指定することがあります。

rng->Value[Excel::XlRangeValueDataType::xlRangeValueDefault] = rng->Value; 

それとも私が代わりにプレーンValueValue2プロパティを使用することもできました:

rng->Value2 = rng->Value2; 

うまくいけば、これがされます将来この問題を抱える誰かに役立ちます。

関連する問題