Recibo error al dimensionar matriz en una macro

Master recurriendo a su experticia me gustaría saber por que a dimensionar una matriz en una macro esta me genera un error, pero al usar este mismo código pero en una hoja diferente si me funciona bien

Private Sub cmd_nuevo_Click()
Frm_userpro.Show
End Sub
Sub FilterData()
  Dim txt1 As String
  Dim i As Long, j As Long, k As Long
  ReDim b(1 To UBound(a, 1), 1 To UBound(a, 2)) '''-----> linea que aparce error 13
ListBox1.Clear
  For i = 1 To UBound(a, 1)   'linea que mellega al ultimo registro
    If txtbuscarece.Value = "" Then txt1 = a(i, 1) Else txt1 = txtbuscarece.Value
    If LCase(a(i, 2)) Like "*" & LCase(txt1) & "*" Then 'linea que me lleva a la columna requerida usando la funcion lcase que es para letras mayus o minus
      j = j + 1
'      For k = 1 To UBound(a, 2)
'        b(j, k) = a(i, k)
'        If k = 4 Or k = 5 Then
'          b(j, k) = Format(b(j, k), "$ #,0.00")
'         ' b(j, k) = Format(b(j, k), "$ #,##.00")
'        End If
'      Next
    End If
  Next i
  If j > 0 Then ListBox1.List = b
End Sub
Private Sub txtbuscarece_Change()
Call FilterData
End Sub
Private Sub UserForm_Initialize()
a = Sheets(Hoja5.Name).Range("A2:K" & Sheets(Hoja5.Name).Range("A" & Rows.Count).End(3).Row).Value ' se carga todo en una matriz
 With ListBox1
 .List = a ' la matriz queda cargada para mostrar
 .ColumnCount = 2 ' numero de columna de la hojas amostrar
 .ColumnWidths = "0pt;1pt;2pt;20pt" 'columna 0  no se muestre y segunda columna con dimencion 20
End With
End Sub

este mismo codigo lo aplico pero en hoja 2 y si realiza la  busqueda en el cuadro de texto que es e n escencia lo que estoy buscando 

1 Respuesta

Respuesta
1

Te falta declarar la variable 'a' como global.

Al inicio del código pon lo siguiente:

Dim a as variant

Revisa el siguiente vídeo:

https://youtu.be/Bn-xtarwrsk 

[Suscríbete a mi canal para que recibas las notificaciones de los nuevos vídeos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas