vba - 合并、取消合并、重新合并宏

标签 vba excel merge

我正在开发一个宏来取消合并给定范围内的合并单元格,然后重新合并未合并的原始合并单元格。我一直在努力确定如何存储最初未合并的单元格列表,以便宏可以重新合并这些确切的单元格。电子表格中合并的行每周都会变化。

Sub MergeUnmerge()

'

Mergeunmerge Macro
'

Dim mergelist As Range

Dim celllist As Range


For Each cell In Range("A1:S49")

If cell.MergeCells = True Then
   Set mergelist = celllist
            cell.UnMerge
        End If
    Next

 For Each cell In mergelist
    Range("celllist").Merge
Next

结束子

最佳答案

您需要将 MergeArea 地址添加到数组中。

Sub MergeUnmerge()

Dim cel As Range
Dim mergeArr()  
y = 0

For Each cel In Range("A1:S49")
    If cel.MergeCells = True Then
        ReDim Preserve mergeArr(y + 1)
        mergeArr(y + 1) = cel.MergeArea.Address
        cel.UnMerge
        y = y + 1
    End If
Next cel

For x = 1 To y
    Range(mergeArr(x)).Merge
Next x

End Sub

关于vba - 合并、取消合并、重新合并宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41619060/

相关文章:

vba - 搜索目录中的文件并列出其名称和路径 - 两层子文件夹

excel - 在 Excel 中使用 VBA 宏从 NCI 化学标识符解析器中检索化学结构的图像

iOS 核心数据合并策略 - NSMergeByPropertyStoreTrumpMergePolicy

r - 按行和列名称以及按组合并两个数据框

VBA获取href值

excel - 如何在vba中的另一个函数中使用一个函数的变量?

vba - 对于每个单击的 ActiveCell,用户窗体的位置不同

java - POI 用变音符号阅读

excel - 如何禁用另一个应用程序(记事本)的屏幕更新

svn - 对 git merge 使用单独的提交消息是否更好?