我有代码可以让我在一个范围内选择一个项目:
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;
这工作正常。但是,我需要选择范围内的所有单元格,但我无法找到一种方法来在 Item 属性的“get”调用中指定它。尝试使用 -1,-1... 尝试在 2 个变体中传入一对 bstr,指定以冒号分隔的列范围和行范围;还尝试传入范围规范字符串的单个参数。没有工作。
更新:我也试过
hr = iRange->Select(vResult);
这确实返回 S_OK,但它不选择范围。通常,我不能直接调用 iRange 结构中的函数;结果是 gpf 或访问冲突——所以我必须使用 autowrap 函数(来驱动 Invoke 调用)。我对这个电话不起作用并不感到惊讶。希望我能得到这个工作......这是这个项目的最后一部分。