Visual Basic - Duda con variables con diferentes sufijos

Life is soft - evento anual de software empresarial
 
Vista:

Duda con variables con diferentes sufijos

Publicado por Pablo (1 intervención) el 25/06/2021 13:39:11
Buenas tardes, necesito moverme entre muchas variables que tienen un mismo nombre base, salvo el sufijo que las diferencia. ¿Existe alguna manera de utilizarlas y guardar sus valores utilizando algún carácter especial o algo parecido?

Les envío un ejemplo sencillo. En este caso, al unir la base del nombre con el sufijo utilizando "&" sólo consigo guardarlo como si se tratase de un string, ya que los dos resultados quedan como N_elem_m1 y N_elem_m2 en vez de ser 10 y 20.

Muchas gracias desde ya.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub cadenas()
 
Ciclos = 2
N_elem_m1 = 10
N_elem_m2 = 20
 
For m = 1 To Ciclos
    N_elem = "N_elem_m" & m
    If m = 1 Then
        Resultado1 = N_elem
 
    Else
        Resultado2 = N_elem
 
    End If
 
Next m
 
MsgBox "Resultado 1 = " & Resultado1 & vbCrLf & "Resultado 2 = " & Resultado2
 
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 355
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Duda con variables con diferentes sufijos

Publicado por raul (160 intervenciones) el 25/06/2021 14:58:33
Pablo el programa esta haciendo literalmente lo que le indicas.

Veras el problema es de DIMENSIONAR las variables al tipo de datos que necesitas, Porque en el fragmento de codigo todo es del tipo VARIANT y en consecuencia responde como string. Por otro lado no persigo tu objetivo...pero aqui va un poco de ayuda.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Optionn base 1' Vamos a Utilizar ARRAYS y quiero que inicialicen en 1 no como por defecto lo hacen en cero.
Option Explicit
DIM  N_elem_m(2) as integer, M as integer, Ciclos as integer
 
Sub cadenas()
Ciclos = 2
N_elem_m(1) = 10
N_elem_m(2) = 20
 
For M = 1 to Ciclos
If m = 1 Then
Resultado1 = N_elem_m(M)
MsgBox "Resultado 1 = " & Resultado1 & vbCrLf & "Resultado 2 = " & Resultado2
Else
Resultado2 = N_elem_m(M)
End If
Next m
end sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 4
Ha aumentado su posición en 314 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Duda con variables con diferentes sufijos

Publicado por Pablo (1 intervención) el 28/06/2021 23:15:44
Muchas gracias por la respuesta Raúl, me ha sido muy útil.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar