necesita manejar Textbox dentro de un For...

04/08/2005 - 01:51 por Jose Manuel Garcia | Informe spam
Private Sub CommandButton1_Click()

Set r = Range("Datos")
For n = 1 To 2
a = "Textbox" + CStr(n)
'Esto no funciona porque a tiene comillas "Textbox1"
'¿Como se las quito?

r.Cells(n, 1) = a.value
Next n

End
End Sub
 

Leer las respuestas

#1 Tristan
04/08/2005 - 12:05 | Informe spam
Esa no es la forma de hacerlo. Vb.net es un compilador, no un intérprete. Los
objetos que manipula se deben conocer en tiempo de compilación, aunque
reflection te permitiría hacerlo.

Algunos te recomendarán que recorras todos los controles en un bucle en
busca del que se llama como te interesa, pero desde luego yo jamás te lo
recomendaría. La forma de hacer lo que quieres en un lenguaje compilado es
mediante arrays.

Para introducir los diversos TextBox en el array tienes muchas maneras. Una
de ellas sería manualmente:

dim textos() as TextBox = {TextBox1, TextBox2, ...}

Una vez en el array, podrás acceder a ellos en un bucle For o For Each, o
por su índice:

for i = 1 to 2
r.Cells(i, 1) = textos(i - 1).Text
next

Hay muchas otras formas de llenar el array textos. Normalmente la mejor es
crear los controles en tiempo de ejecución, y no en diseño. Una vez creados
se asignarían al array.

Otra forma es rellenar el array, recorriendo todos los controles del
formulario en busca de los que tienen el nombre que te interesa.

Pero si realmente el número de TextBox no es excesivo, yo los cargaría
manualemente como te dije en el primer ejemplo.

Juan Carlos Badiola Saiz
MVP - C#

Preguntas similares