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 If
afirmaçã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 8
e 9
são os números das colunas para H
e 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
.