J'ai un document visio avec des formes et des données de forme pertinentes. Im essayant d'extraire des données de ces formes. Quelques-uns des champs de données de forme sont des formules (qui affichent la valeur correcte dans Visio), mais lors de l'obtention de ces valeurs, je ne sais pas comment renvoyer la valeur sous forme de chaîne.

Voici l'appel:

avarFormulaArray(iCell) = 
shp.CellsSRC(Visio.VisSectionIndices.visSectionProp, iRow, 
Visio.VisCellIndices.visCustPropsValue).FormulaU

Cette réponse simple est d'utiliser .Result au lieu de .FormulaU, mais cela ne fonctionnera pas car ce n'est pas du type correct (FormulaArray) qui doit être une formule. Je ne sais pas comment contourner cela pour le moment. Toute aide est appréciée.

Solution utilisant les conseils de @JonFournier

"""" & shp.CellsSRC(Visio.VisSectionIndices.visSectionProp, iRow, Visio.VisCellIndices.visCustPropsValue).ResultStr(Visio.VisUnitCodes.visNoCast) & """"

L'extrait de code suivant garantit que, quel que soit le contenu de la cellule de la feuille de forme, la valeur / chaîne résultante est renvoyée. .ResultStr(Visio.VisUnitCodes.visNoCast)

L'ajout des guillemets ajoutés au début et à la fin me donne le résultat (valeur / chaîne) comme s'il était retourné en utilisant mon `.FormulaU 'd'origine mais calculera les formules et renverra les valeurs plutôt que la formule réelle.

L'utilisation de .ResultU ou .Result renverra 0 pour tout ce qui n'est pas une valeur, donc les chaînes ne fonctionneront pas car elles sont renvoyées comme 0.

0
Cjust689 26 juil. 2017 à 22:03

2 réponses

Meilleure réponse

Utilisez .Result (visUnitCode) ou .ResultIU () pour obtenir la valeur d'une cellule.

1
Jon Fournier 27 juil. 2017 à 13:10

Dans MS Visio, vous n'avez pas de .Value ! Il a .Result Quel type de données pouvez-vous utiliser dans ce champ?

0
Surrogate 26 juil. 2017 à 22:09