j'ai le code qui me permet de sélectionner un seul élément dans arange:Automatisation Excel. Vous avez besoin de sélectionner plusieurs éléments à partir d'une plage
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;
Cela fonctionne très bien. Cependant, j'ai besoin de sélectionner toutes les cellules de la plage, mais je n'ai pas réussi à trouver un moyen de le spécifier dans l'appel "get" de la propriété Item. Essayé en utilisant -1, -1 ... essayé de passer dans une paire de bstr dans les 2 variantes, en spécifiant une plage de colonnes séparées par deux-points et une plage de lignes; également essayé de passer dans un seul paramètre d'une chaîne de spécification de gamme. Aucun n'a travaillé.
Mise à jour: J'ai aussi essayé
hr = iRange->Select(vResult);
Cela ne retourne S_OK, mais il ne sélectionne pas la plage. Normalement, je ne peux pas appeler directement les fonctions dans la structure iRange; le résultat est une violation gpf ou d'accès - donc je dois utiliser la fonction autowrap (pour conduire un appel Invoke). Je ne suis pas surpris que cet appel ne fonctionne pas. J'espère que ça marchera ... c'est la dernière pièce de ce projet.
C'est ce que j'essayais à l'origine de faire. Je reçois un échec quand je fais cet appel, cependant. HRESULT 0x800a03ec. J'ai une question distincte affichée ici pour répondre à celle-ci. – Steve
En outre, j'ai vu cette page: http://www.nika-soft.com/nativeexcelnet/doc/NativeExcel.IRange.Select.html qui laisse entendre qu'à partir de C++, vous pouvez spécifier une plage sur les éléments. En raison de restrictions dans mon code, je ne peux pas utiliser les classes listées ici. Je dois utiliser les appels de style autowrap/invoke. – Steve
Eh bien - je suppose que je ne peux pas vous aider ... –