excel - 在 Excel 中,如何使用 VBA 动态合并具有相同值的单元格?
问题描述
我正在为项目管理创建一个 excel,在甘特图部分,将 day 和 weeknum 作为信息会很好。
正如您在图片中看到的,顶部的滚动条使表格发生变化,因此合并也必须随着数字的移动而变化。
我没有尝试太多,因为我只是想不出一种自动执行此操作的方法。我希望单元格合并和取消合并,因为结果会改变。
这是我期望发生的事情:
如果需要,我可以展示卷轴的工作原理,使其在视觉上更容易理解。
解决方案
这是我使用的那个。
Sub MergeSame()
Dim rng As Range
Dim First As Range
Dim Last As Range
Set rng = Selection
If rng.Rows.Count > 1 Then Exit Sub
For i = 1 To rng.Columns.Count + 1
If rng.Cells(1, i).Value <> PreviousValue Then
If Not (First Is Nothing) Then
Set Last = rng.Cells(1, i - 1)
Range(First, Last).Merge
End If
Set First = rng.Cells(1, i)
PreviousValue = rng.Cells(1, i).Value
Else
rng.Cells(1, i).Clear
End If
rng.Cells(1, i).HorizontalAlignment = xlCenter
Next i
End Sub