Ayuda con función e índice de menús (incluye código fuente)
Publicado por Sahid Ra Gutierrez Cruz (202 intervenciones) el 13/03/2021 10:59:50
Anexo al final del mensaje el código fuente del FORM (para no transcribir los menús)
y abajo anexo el contenido del formulario para su análisis, copiar y pegar en e FORM)
Saludos tengo la siguiente duda, espero me puedan ayudar de antemano gracias.
En el editor de menús cree la siguiente estructura
1
2
3
4
5
Numeros (mNumeros)
...Primer rango (mRango1)
......Rango1 (mR1 índice 0)'Este menú con índice es con el que trabajaremos
...Segundo rango (mRango2)
......Rango2 (mR2 índice 0)'Este menú con índice es con el que trabajaremos
Aquí el código para copiar y pegar.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Option Explicit
Private Sub Form_Load()
Dim Rango1 As String
Dim Rango2 As String
Rango1 = "0,1,2,3,4," 'Asigno el rango uno
Rango2 = "5,6,7,8,9,"
Do While Rango1 <> "" 'Repito el rango uno mientras contenga elementos
mR1(mR1.Count - 1).Caption = Mid(Rango1, 1, InStr(Rango1, ",") - 1) 'Asigno el primer elemento del rango
Rango1 = Mid(Rango1, InStr(Rango1, ",") + 1) 'Elimino el primer elemento del rango
Load mR1(mR1.Count) 'Creo un nuevo elemento del menú
Loop: Unload mR1(mR1.Count - 1) 'Elimino el ultimo elemento del menú
Do While Rango2 <> ""
mR2(mR2.Count - 1).Caption = Mid(Rango2, 1, InStr(Rango2, ",") - 1)
Rango2 = Mid(Rango2, InStr(Rango2, ",") + 1)
Load mR2(mR2.Count)
Loop: Unload mR2(mR2.Count - 1)
End Sub
Hice lo siguiente pero me manda un error "Run-time error 13 (en la linea 13)" que me
recomiendan para solventarlo: En la designación de parámetros para el menú es
brinca el problema.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Option Explicit
Public Function AsignaRangos(arRango As String, arR As Menu)
If Left(arRango, 1) <> "," Then arRango = arRango + ","
Do While arRango <> ""
arR(arR.Count - 1).Caption = Mid(arRango, 1, InStr(arRango, ",") - 1)
arRango = Mid(arRango, InStr(arRango, ",") + 1)
Load arR(arR.Count)
Loop: Unload arR(arR.Count - 1)
End Function
Private Sub Form_Load()
Dim Rango1 As String: Rango1 = "0,1,2,3,4,"
Dim Rango2 As String: Rango2 = "5,6,7,8,9,"
AsignaRangos Rango1, mR1 AsignaRangos Rango2, mR2End Sub
CODIGO FUNTE DEL FORM (Rangos.frm)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
VERSION 5.00Begin VB.Form Form1Caption = "Form1"
ClientHeight = 3750 ClientLeft = 225 ClientTop = 870 ClientWidth = 5175LinkTopic = "Form1"
ScaleHeight = 3750 ScaleWidth = 5175StartUpPosition = 3 'Windows Default
Begin VB.Menu mNumerosCaption = "Numeros"
Begin VB.Menu mRango1Caption = "Primer rango"
Begin VB.Menu mR1Caption = "Rango1"
Index = 0End
End
Begin VB.Menu mRango2Caption = "Segundo rango"
Begin VB.Menu mR2Caption = "Rango2"
Index = 0End
End
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = FalseAttribute VB_Creatable = FalseAttribute VB_PredeclaredId = TrueAttribute VB_Exposed = FalseTengan felices líneas de programación.
Valora esta pregunta


0

