gpt4 book ai didi

excel - 根据单元格值合并范围内的单元格,但最后一个单元格没有被合并

转载 作者:行者123 更新时间:2023-12-04 07:16:10 25 4
gpt4 key购买 nike

我有一个范围,其中包含从 A 列到 K 列的数据的行。C 列中单元格值的每个新更改之间已经有一个空白行。我想根据值是否相同加上一个空白来合并 c 列中的数据下面的行。我绝对需要合并为 B 列中的每个唯一单元格值包含一个空白行,因为稍后我将对值进行分组。
我当前的代码合并了除最后一个唯一值之外的所有内容......谁能帮我调整我的代码,以便我也可以包含我的最后一个唯一值?

Sub MergeSameValue()
Application.DisplayAlerts = False
Dim LastRow As Integer
Dim StartRow As Integer
StartRow = 12
LastRow = Range("B" & Rows.Count).End(xlUp).Row

Dim StartMerge As Integer
StartMerge = StartRow

For i = StartRow + 1 To LastRow + 1
If Cells(i, 2) <> "" Then
If Cells(i, 2) <> Cells(i - 1, 2) Then
Range(Cells(i - 1, 2), Cells(StartMerge, 2)).Merge
StartMerge = i
End If
End If
Next i

End Sub
enter image description here

最佳答案

您的代码指出您当前在循环中检查的单元格不能为空,即 If Cells(i, 2) <> "" Then .
如果单元格不为空白,则检查是否应合并。
由于最后一部分将从不满足该标准(当 i = 28 时,代码行 Cells(i, 2) <> "" 永远不会为真。因此在下面的示例中,第 28 行将始终是最后一个单元格,它将 永远不会 具有值)。因此,您的代码将永远不会移至下一部分:If Cells(i, 2) <> Cells(i - 1, 2) Then...并尝试合并最后一部分。
您可以通过向单元格 B28 添加一个值来尝试此操作并且类别“日记”将被合并。
通过在最后一行添加异常,这将解决您的问题。
enter image description here
注意:我建议仅在合并时隐藏警报。否则,如果代码的不同部分没有按预期工作,很容易感到惊讶,因为它会因为警报被隐藏而被隐藏。
完整代码:

Sub MergeSameValue()

Dim LastRow As Long
Dim StartRow As Long
StartRow = 12
LastRow = Range("B" & Rows.Count).End(xlUp).Row

Dim StartMerge As Long
StartMerge = StartRow

For i = StartRow + 1 To LastRow + 1
If Cells(i, 2) <> "" Then
If Cells(i, 2) <> Cells(i - 1, 2) Then
Application.DisplayAlerts = False
Range(Cells(i - 1, 2), Cells(StartMerge, 2)).Merge
Application.DisplayAlerts = True
StartMerge = i
End If
End If

If i = LastRow + 1 Then ' for the last row, make an exception and check and run merge
Application.DisplayAlerts = False
Range(Cells(i, 2), Cells(StartMerge, 2)).Merge 'To add a blank space for the last row in the merge, remove the -1.
Application.DisplayAlerts = True
End If

Next i

End Sub
结果:
enter image description here

关于excel - 根据单元格值合并范围内的单元格,但最后一个单元格没有被合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68746682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com