2016-08-02 20 views
0

我有一個Excel RangePtr對象,我試圖將其對應的單元格轉換爲值而不是公式。我習慣在VBA中這樣做,只需使用r.Value = r.Value即可完成此操作。在  C++我已經試過類似的做法:如何在C++中設置Excel RangePtr的Value = Value?目前我得到HRESULT 0x80004005

rng->Value = rng->Value; 

但是當我運行的是,我從HRESULT 0x8004005得到一個異常。單元格中的值不會導致Excel窒息;返回的值應該只是_variant_t,其中包含值爲doubleSAFEARRAY。那麼我做錯了什麼?

回答

0

D'oh。看起來RangePtr.Value實際上有指定XlRangeValueDataType常量,它是不存在的VBA:

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

或者我可以使用的Value2屬性,而不是簡單的Value

rng->Value2 = rng->Value2; 

希望這將是有助於未來有此問題的其他人。

相關問題