Selezionare una variabile composta da parte letterale e parte numerica

Download PDF

Domanda:

Fabio: Ciao, ho necessità di inserire all’interno di una variabile il valore contenuto in un’altra variabile che fa parte di un gruppo di variabili composte da una parte letterale e da una numerica. esempio, voglio costruire parole casuali, inserisco le lettere dell’alfabeto in variabili che chiamerò da L1 ad L26, poi nella variabile ”parola metterò con dei cicli il valore contenuto nella variabile Lx+ Ly+Lz e così via. come posso far sì che Lx o Ly o Lz sia riconosciuta come variabile e non come testo?

Risposta:

Se capisco bene si vuole usare delle variabili L1, L2, L3… L26.

Bene, in VBA tutto ciò non ha senso! Si devono usare gli Array.

Un erray è una variabile composta da un numero definito di caselle indirizzabili attraverso un numero (in realtà VBA èben più flessibile ma per cominciare restiamo alla parte numerica)

Quindi si definisce una variabile come

Dim L(1 To 26) As String

e quindi si utilizzano i 26 spazi cosi definiti attraverso:

L(1) = "A"
L(2)= "B"
....
L(26)="Z"

Questa è la tecnica più semplice per indirizzare le 26 caselle della variabile. In realtà questa rappresentazione abilita la potenza dei cicli For…Next e similari attraverso un indice per scorrere le variabili

Quindi ad esempio per riempire le 26 celle sarà sufficiente utilizzare un semplice ciclo For..Next:

For i = 1 To 26
  L(i) = Chr(64 + i)
Next i

..che esegue egregiamente il compito riempiendo la variabile delle 26 lettere maiuscole.

A questo punto si può comporre la “parola” casuale richeista come per esempio con questo semplice codice:

parola = ""
For i = 1 To Lunghezza  'lunghezza della parola
   Indice = Int(Rnd * 26) + 1
   parola = parola & L(Indice) ' carattere a caso
Next i

per ottenere ad esempio questo risultato:

parola_casuale

Il file di esempio è qui disponibile: parola_casuale

 

The following two tabs change content below.

Andrea Terzaghi

Geneva (CH)
Ingegnere, pellegrino del mondo e della conoscenza, curioso di tutto

Ultimi post di Andrea Terzaghi (vedi tutti)