¿Cómo puedo ejecutar esta función usando VBA en Excel?

¿Cómo puedo ejecutar esta función usando VBA en Excel?

Estoy intentando obtener esta función en VBA pero soy nuevo en esto. Parece que no sé cómo puedo hacer esto:

Lo que estoy tratando de hacer es, para cada celda numérica de la columna B, quiero tomar las siguientes dos celdas de la columna H, es decir, si es B7, me gustaría tomar H8 y H9 (los siguientes dos valores de fila en H columna) y concatenarlos (son cadenas) y guardarlos en I7 (misma fila que B7) y finalmente eliminar los valores en H8,H9.

Hasta aquí llegué, sé que no es mucho.

Private Sub CommandButton1_Click()
Dim B As Range, H As Range, I As Range
For Each B In ClientTable.Columns(2).Cells
    If IsNumeric(B) Then
    (What should be done here?)    
    End If
Next B
End Sub

Respuesta1

Descubrí IsNumeric(B)que esto es cierto para las celdas en blanco, por lo que cambié su Ifdeclaración en consecuencia. Esto funcionó para mí:

    If IsNumeric(B) And B <> "" Then
        Cells(B.Row, 9) = Cells(B.Row + 1, 8) & Cells(B.Row + 2, 8)
        Cells(B.Row + 1, 8) = ""
        Cells(B.Row + 2, 8) = ""
    End If
    If B.Row > 9 Then Exit For

Obviamente 8y 9son los números de columna de Hy I, respectivamente. Agregué el

If B.Row > 9 Then Exit For

línea porque tuve un problema con el bucle que no terminaba; si

For Each B In ClientTable.Columns(2).Cells

Funciona para ti, puedes sacar el If B.Row > 9 Then Exit For.

información relacionada