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

2

Estou tentando obter essa função no VBA, mas sou novo nisso. Eu não pareço saber como posso fazer isso:

O que eu estou tentando fazer é, para cada célula na coluna B que é numérica, eu quero pegar as próximas duas células na coluna H ou seja, se é B7, eu gostaria de pegar H8 e H9 (próximas duas linhas valores na coluna H) e concatená-los (eles são seqüências de caracteres) e salvá-los em I7 (mesma linha como B7) e, finalmente, excluir os valores em H8, H9.

Aqui é onde eu cheguei, eu 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
    
por Rathan 12.09.2015 / 23:09

1 resposta

0

Eu achei IsNumeric(B) para ser verdadeiro para células vazias, então eu mudei sua declaração If 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, 8 e 9 são os números de coluna para H e I , respectivamente. Eu adicionei o

If B.Row > 9 Then Exit For
linha

porque eu tive um problema com o loop não terminar; se

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

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

    
por 13.09.2015 / 00:02