Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA循环并查找特定范围,连接2个单元格值并删除空单元格_Excel_Vba - Fatal编程技术网

Excel VBA循环并查找特定范围,连接2个单元格值并删除空单元格

Excel VBA循环并查找特定范围,连接2个单元格值并删除空单元格,excel,vba,Excel,Vba,我试图在a列中标识一个特定的区域,并将该特定区域内的两个单元格连接起来,然后删除空单元格。我已经成功地将代码组合在一起,它做得非常好。但是,我不知道如何循环它来识别下一个范围。任何帮助都将不胜感激 根据下面的图片和代码,首先,我在a列中查找并选择两个(MCS)之间的范围,条件是,如果两个MCS之间的行数大于8。然后我在MCS之后立即连接前2个单元格并删除空行 下面的代码适用于第一个范围,但我无法循环识别第22行到第32行的下一个范围并执行串联 我不知道如何在A列中循环并选择范围和连接。任何帮助都

我试图在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