Como posso executar esta função usando VBA no Excel?

Como posso executar esta função usando VBA no Excel?

Estou tentando obter essa função no VBA, mas sou novo nisso. Parece que não sei como posso fazer isso:

O que estou tentando fazer é que, para cada célula numérica da coluna B, quero pegar as próximas duas células da coluna H, ou seja, se for B7, gostaria de pegar H8 e H9 (os próximos dois valores de linha em H coluna) e concatená-los (são strings) e salvá-los em I7 (mesma linha de B7) e finalmente excluir os valores em H8,H9.

Foi aqui que cheguei, sei que não é muito.

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

Responder1

Descobri IsNumeric(B)que é verdade para células em branco, então alterei sua Ifafirmação de acordo. Isso funcionou para mim:

    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 8e 9são os números das colunas para He I, respectivamente. Eu adicionei o

If B.Row > 9 Then Exit For

linha porque tive um problema com o loop não encerrando; se

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

funciona para você, você pode retirar o arquivo If B.Row > 9 Then Exit For.

informação relacionada