Arrojar resultados array en excel VBA

[Buenos días 

estoy intentando arrojar los en la columna b pero me pega todo 

Sub ejemplo()
    a = Range("A2:C" & Range("A" & Rows.Count).End(3).Row)
    For i = 1 To UBound(a, 1)
        If a(i, 1) > 40 Then a(i, 2) = "OBSERVADO"
    Next i
    Range("C2").Resize(UBound(a, 1), 2) = a
End Sub

1 Respuesta

Respuesta
2

Puede explicar qué tienes y qué quieres de resultado.

Nota: Una cosa que debes tener en cuenta cuando haces una pregunta en un foro ... las personas a las que solicitas ayuda no saben nada acerca de tus datos, nada sobre cómo están en el libro de trabajo, absolutamente nada sobre lo que tú quieres que se haga con él y absolutamente nada sobre cómo quieres el resultado ... debes ser muy específico al describir cada una de estas áreas, y no debes suponer que seremos capaces de "resolverlo" por nuestra cuenta. Recuerda, nos estás pidiendo ayuda ... así que ayúdanos, brindando la información que necesitamos para hacerlo, incluso si esa información te parece "obvia" (recuerda, sólo es obvia para ti porque estás familiarizado con tus datos, su diseño y el objetivo general para ellos).

[Te pongo unos comentarios

Sub ejemplo()
  'en 'a' cargas las columnas A,B y C
    a = Range("A2:C" & Range("A" & Rows.Count).End(3).Row)
    For i = 1 To UBound(a, 1)
      'en esta parte estás cambiando la columna B
        If a(i, 1) > 40 Then a(i, 2) = "OBSERVADO"
    Next i
    'con esto le estás diciendo que ponga en la columna C
    '2 columnas la A y la B
    Range("C2").Resize(UBound(a, 1), 2) = a
End Sub

Si solamente quieres la columna 2 del arreglo:

Sub ejemplo()
  Dim a, i
  a = Range("A2:C" & Range("A" & Rows.Count).End(3).Row)
  For i = 1 To UBound(a, 1)
      If a(i, 1) > 40 Then a(i, 2) = "OBSERVADO"
  Next i
  Range("D2").Resize(UBound(a, 1)) = Application.Index(a, , 2)
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas