2009-06-23 12 views
1

Je ne suis pas sûr d'avoir les termes corrects ci-dessus, mais ce que j'essaie de faire est d'appeler une fonction Javascript en lui passant des paramètres depuis un fichier Excel , ainsi la fonction s'exécutera et énumérera les articles dans la zone de texte suivante, me permettant de choisir l'entrée correcte dans cette zone de texte, qui choisit alors la boîte finale.Comment passer des paramètres variables dans une fonction Javascript en utilisant Excel VBA

Voici le code que j'ai, qui fonctionne, si je ne mets pas variable dans le: Call .Document.parentWindow.execScript("FillVendorNames('MyText')", "javascript") Si je mets une variable à la place de « MonTexte », je reçois une erreur de temps d'exécution: Call .Document.parentWindow.execScript("FillVendorNames(cCode)", "javascript") Call .Document.parentWindow.execScript("FillVendorNames(.document.all.ComCode)", "javascript") Les variables sont déclarées plus tôt dans le code et je peux vérifier si les valeurs sont correctes en utilisant la fenêtre Immediates et elles sont toutes correctes, mais j'ai toujours l'erreur d'exécution. Ce que j'essaie de faire est d'utiliser la fonction existante qui remplit automatiquement une liste déroulante, basée sur l'option choisie dans la liste déroulante d'origine. Si je choisis MyText dans la première liste déroulante, alors FillVendorNames donne la liste des fournisseurs dans la liste déroulante suivante, ce qui me permet de le choisir. Je peux alors entrer le prochain choix dans la fonction suivante et il choisit une troisième option, mais tout cela est basé sur la première fonction créant la deuxième liste déroulante. La première liste est chargée automatiquement sur la page, mais la seconde ne l'est pas, donc je ne peux pas en choisir une option. Quelqu'un peut-il aider, s'il vous plaît? Merci.

+0

Je pense que nous allons avoir besoin d'un peu plus d'informations sur ce que vous essayez de faire. Quel type de variable passez-vous à FillVendorNames? Où se trouve le fichier Excel? Je n'ai jamais vu Javascript exécuté à partir de VBA. Comment votre système est-il configuré? – CoderDennis

+0

Salut Dennis, Il ya beaucoup de code sur la page, je ne veux pas révéler trop de travail au cas où je ne devrais pas. Le fichier Excel est dans Mes documents. Les variables que je passe à FillVendorNames sont extraites d'un fichier Excel en utilisant Cells (X, 2) pour choisir le varialbe approprié à envoyer. Vous ne savez pas à quelle configuration vous faites référence? (Un peu d'un débutant à ce genre de choses). La fonction fonctionne exactement comme elle le devrait si j'entre le 'Mytext' en utilisant seulement du texte, mais si j'essaie d'utiliser la variable, cela ne fonctionne pas. – DOS

+0

OK, je suppose que quand je vois Javascript, je pense que vous travaillez avec une page web. Est-ce le cas? Que fait la fonction Javascript? La liste déroulante est-elle affichée sur une page Web? – CoderDennis

Répondre

1

Deux questions possibles:

  • VBA ne remplace pas les noms de variables avec leurs valeurs dans les chaînes

Exemple:

Dim x as String 
x = "Hello world!" 

Msgbox x 
// shows "Hello world!" 

Msgbox "x" 
// shows "x" 
  • Call est jamais nécessaire (parce que vous peut simplement omettre des parenthèses à la place) et peut causer des problèmes

Exemple:

Call Msgbox("x") 
// is almost exactly the same as 
Msgbox "x" 

utiliser Just:

With foo 
    // do stuff 
    .Document.parentWindow.execScript "FillVendorNames(" & cCode & ")", "javascript" 
    // do more stuff 
End With 
+0

Merci Barrowc. J'ai utilisé le dernier exemple que vous avez ci-dessus et cela fonctionne parfaitement. Merci pour votre aide – DOS

Questions connexes