I'm trying to get this function in VBA but I'm new to it. I don't seem to know how I can get this done:
What I'm trying to do is, for each cell in column B that's numeric, I want to take the next two cells in column H i.e if it's B7, I'd like to take H8 and H9 (next two row values in H column) and concatenate them (they're strings) and save them in I7 (same row as B7) and finally delete the values in H8,H9.
Here's where I got to, I know it isn't much.
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
Answer
I found IsNumeric(B) to be true for blank cells, so I changed your If statement accordingly. This worked for me:
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
Obviously 8 and 9 are the column numbers for H and I, respectively. I added the
If B.Row > 9 Then Exit For
line because I had a problem with the loop not terminating; if
For Each B In ClientTable.Columns(2).Cells
works for you, you can take out the If B.Row > 9 Then Exit For.
No comments:
Post a Comment