【发布时间】:2019-03-08 12:12:09
【问题描述】:
我正在尝试识别 A 列中的特定范围并连接特定范围内的两个单元格并删除空单元格。我已经成功地将代码放在一起,并且做得很好。但是,我不知道如何循环它来识别下一个范围。任何帮助将不胜感激。
根据下面的图像和代码,首先,我在 A 列中查找并选择两个 (MCS) 之间的范围,条件是,如果两个 MCS 之间的行数超过 8。然后我在 MCS 之后立即连接前 2 个单元格并删除空行。
以下代码适用于第一个范围,但我无法循环识别从第 22 行到第 32 行的下一个范围并执行连接。我想在 A 列循环,因为会有更多 MCS。
Sub MergeStem()
Dim findMCS1 As Long
Dim findMCS2 As Long
Dim myCount As Integer
Dim myStems As Long
Dim mySelect As Range
Dim c As Range
findMCS1 = Range("A:A").Find("MCS", Range("A1")).Row
findMCS2 = Range("A:A").Find("MCS", Range("A" & findMCS1)).Row
myCount = Range("A" & findMCS1 + 1 & ":A" & findMCS2 - 1).Cells.Count
Range("B1").Value = myCount
MsgBox "Number of rows =" & myCount
Set mySelect = Selection
If myCount > 8 Then
myStems = Range("A" & findMCS1 + 2 & ":A" & findMCS2 - 9).Select
Set mySelect = Selection
For Each c In mySelect.Cells
If firstcell = "" Then firstcell = c.Address(bRow, bCol)
sArgs = sArgs + c.Text + " "
c.Value = ""
Next
Range(firstcell).Value = sArgs
End If
Columns("A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Application.ScreenUpdating = True
End Sub
【问题讨论】:
-
您只执行一次查找,因此您需要构建一个循环。网上有很多例子——看起来你应该可以试一试。
-
我不是程序员,但我尝试了 stackoverflow 的帮助来组装一些代码。但无法循环。任何帮助都会很棒。谢谢
-
为什么要省略第 13-22 行?
-
13 到 22 之间的行数是 8,所以只有超过 8 行我才需要查找并选择该范围。
-
所以中间的行数需要8以上。如果还没回答,我今天晚些时候再看看。