Excel VBA循环并查找特定范围,连接2个单元格值并删除空单元格
我试图在a列中标识一个特定的区域,并将该特定区域内的两个单元格连接起来,然后删除空单元格。我已经成功地将代码组合在一起,它做得非常好。但是,我不知道如何循环它来识别下一个范围。任何帮助都将不胜感激 根据下面的图片和代码,首先,我在a列中查找并选择两个(MCS)之间的范围,条件是,如果两个MCS之间的行数大于8。然后我在MCS之后立即连接前2个单元格并删除空行 下面的代码适用于第一个范围,但我无法循环识别第22行到第32行的下一个范围并执行串联 我不知道如何在A列中循环并选择范围和连接。任何帮助都将不胜感激。谢谢Excel VBA循环并查找特定范围,连接2个单元格值并删除空单元格,excel,vba,Excel,Vba,我试图在a列中标识一个特定的区域,并将该特定区域内的两个单元格连接起来,然后删除空单元格。我已经成功地将代码组合在一起,它做得非常好。但是,我不知道如何循环它来识别下一个范围。任何帮助都将不胜感激 根据下面的图片和代码,首先,我在a列中查找并选择两个(MCS)之间的范围,条件是,如果两个MCS之间的行数大于8。然后我在MCS之后立即连接前2个单元格并删除空行 下面的代码适用于第一个范围,但我无法循环识别第22行到第32行的下一个范围并执行串联 我不知道如何在A列中循环并选择范围和连接。任何帮助都
你能试试这个吗?通常,
Find
是一种方法,但由于要删除行,很难跟踪找到的单元格
Sub x()
Dim r As Long, n1 As Long, n2 As Long
With Range("A1", Range("A" & Rows.Count).End(xlUp))
For r = .Count To 1 Step -1
If .Cells(r).Value = "MCS" Then
If n1 = 0 Then
n1 = .Cells(r).Row
Else
n2 = .Cells(r).Row
End If
If n1 > 0 And n2 > 0 Then
If n1 - n2 > 9 Then
.Cells(r + 1).Value = .Cells(r + 1).Value & .Cells(r + 2).Value
'.Cells(r + 2).EntireRow.Delete
'Call procedure to delete row
End If
n1 = n2
n2 = 0
End If
End If
Next r
End With
End Sub
嗨,SJR,它在8以上的范围内工作良好。但是,如果范围为8,它还连接并删除一行。是否有可能在不删除的情况下连接并离开空白行,并调用另一个宏来删除空单元格。(1)尝试将“>8”改为“>9”(2)是的。很高兴我们到了那里。
Sub x()
Dim r As Long, n1 As Long, n2 As Long
With Range("A1", Range("A" & Rows.Count).End(xlUp))
For r = .Count To 1 Step -1
If .Cells(r).Value = "MCS" Then
If n1 = 0 Then
n1 = .Cells(r).Row
Else
n2 = .Cells(r).Row
End If
If n1 > 0 And n2 > 0 Then
If n1 - n2 > 9 Then
.Cells(r + 1).Value = .Cells(r + 1).Value & .Cells(r + 2).Value
'.Cells(r + 2).EntireRow.Delete
'Call procedure to delete row
End If
n1 = n2
n2 = 0
End If
End If
Next r
End With
End Sub