Tag: dsoframer

调用Excel范围(IRange)上的select时调用0x800a03ec。 范围从工作表的使用范围返回

我试图select“使用的范围”。 我得到工作表的UsedRange,然后我调用它的selectfunction。 我select呼叫时收到HRESULT 0x800a03ec。 代码如下: COleVariant结果; HRESULT hr = AutoWrap(DISPATCH_METHOD,&result,irange,L“Select”,0); 我不会打扰发布AutoWrap函数的代码(除非有人问)。 这是相当知名的,我没有修改它。 我很确定这个irange是好的,因为我尝试了一些调用来validation它是否符合我的期望,而且确实如此。 如果我遍历它,我可以看到每个单元格的内容(这是正确的)。 返回的行数和列数是正确的,并返回“Address”属性。 工作表未locking。 我已经看到了与Locale有关的其他问题,我的系统设置为美国英语,就像我的用户帐户一样。 两者都没有改变。 希望有人能帮助! 更新 :我也试过了 hr = iRange->Select(vResult); 这确实返回S_OK,但它不select范围。 通常,我不能直接调用iRange结构中的函数; 结果是gpf或访问冲突 – 所以我必须使用autowrap函数(驱动一个Invoke调用)。 我不惊讶这个电话不起作用。 我也尝试打开非只读模式,如果我被locking的Excel文件。 这并没有解决这个问题。 我可以通过从范围中获取单个项目(单元格)来select单个单元格,然后调用它的“select”,但是我无法select范围。

Excel自动化。 需要从范围中select多个项目

我有代码,让我select一个单一的项目在一个范围内: COleVariant vItems = cstrAddr; hr = AutoWrap( DISPATCH_PROPERTYGET, &vCell, irange, L"Item", 2, COleVariant((short)(1)), COleVariant((short)(1))); if (FAILED(hr)) return hr; // Use the dispatch interface to select the cell COleVariant result; hr = AutoWrap( DISPATCH_METHOD, &result, vCell.pdispVal, L"Select", 0); if (FAILED(hr)) return hr; 这工作正常。 不过,我需要select范围内的所有单元格,但是我一直无法在Item属性的“get”调用中find指定此方法的方法。 尝试使用-1,-1 …尝试在2个变种中传递一对bstr,指定冒号分隔的列和一系列行; 也尝试传入一个范围指定的string的单个参数。 没有工作。 更新 :我也试过了 hr = iRange->Select(vResult); 这确实返回S_OK,但它不select范围。 通常,我不能直接调用iRange结构中的函数; […]