Concaténer des Variables de Chaîne pour être Réglé sur une Plage en VBA

Je vais avoir un problème avec une ligne de code:

ActiveSheet.Range("A" & rowCount & ":" & Mid(alphabet, totHdrLngth, 1) & belowRowCount)

Où l'alphabet est une chaîne de caractères contenant des lettres majuscules de A à Z.

Je reçois l'erreur suivante:

Run-time error '5':
Invalid Procedure call or argument

J'ai essayé de créer une Chaîne "inRange" et modifiant le code de cette fonction:

inRange = "A" & rowCount & ":" & Mid(alphabet, totHdrLngth, 1) & belowRowCount
curRange = ActiveSheet.Range(inRange)

Mais qui n'a pas aidé (comme je l'ai pensé qu'il ne serait pas). Des suggestions?

  • Pourriez-vous utiliser Debug.Print inRange pour obtenir la valeur de inRange dans la fenêtre de débogage (ctrl+g)?
  • Hmm.. pas de voir quoi que ce soit dans la fenêtre de débogage. L'exécution de mon curseur sur "inRange" en mode debug et dit que la chaîne est vide (inRange = "")
  • Je veux juste savoir comment la gamme de chaîne, lorsque vous appelez gamme, vous pourriez peut-être MsgBox ou quelque chose.
  • inRange imprime sous vide (rien ne s'affiche)
  • inRange = "A" & rowCount & ":" & Mid(alphabet, totHdrLngth, 1) & belowRowCount est égal à rien?!
  • Quelles sont les valeurs de nombre de lignes, totHdrLngth, et belowRowCount pour l'instance lorsque vous obtenez le message d'erreur?
  • Je serais prêt à parier que le problème est à l'intérieur de la Mid(alphabet, totHdrLngth, 1) code... comme @cularis suggéré, essayez d'imprimer le résultat de cette instruction spécifique pour voir si elle est VRAIMENT de retour seulement une lettre majuscule.
  • totHdrLngth la valeur est égale à zéro, c'est le problème... mais il ne devrait pas être de zéro, puisque j'ai défini égal à 10 dans une autre sous. C'est un Mondial.
  • Poste le code de sous et n'importe où vous êtes à la modification de la variable. Avez-vous l'étape à travers l'ensemble de votre code?
  • J'ai effectivement corrigé cette erreur, mais la gamme est toujours pas sélectionné. Je me donne l'erreur sur la ligne ci-dessous: "code" erreur d'Exécution '91': Objet vairable ou variable bloc with non définie
  • Lorsque vous affectez une valeur à une variable de type <tout objet>, vous devez utiliser le mot clé Set. De sorte que curRange affectation dirait qu'il en a besoin. Sans elle, vous obtiendrez le message d'erreur "Objet ou variable de Bloc with" erreur de vous décrire.
  • maintenant que vous l'avez résolu le totHdrLngth problème, il suffit de revenir à la première déclaration que vous aviez.

InformationsquelleAutor H3lue | 2011-08-04