首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >删除具有跨选定区域居中的合并单元格

删除具有跨选定区域居中的合并单元格
EN

Stack Overflow用户
提问于 2018-07-03 23:15:36
回答 1查看 87关注 0票数 0

您好,最近有人在我之前的一个问题的评论帖子中发布了这篇文章。这篇文章本身显示了一段代码,用于删除合并的单元格,并将它们替换为跨选定内容的中心

https://codereview.stackexchange.com/questions/197726/getting-rid-of-merged-cells/197730#197730

我的问题是我似乎不能让代码工作。我试着试着编写代码,但遇到了两个问题。主要是:

代码语言:javascript
复制
Sub fixMergedCells(sh As Worksheet)

以及以后的

代码语言:javascript
复制
Set used = sh.UsedRange

我不太明白这一点,他们似乎阻止我把它作为一个宏按钮。另外,我似乎得到一个调试提示"Method 'UnMerge‘of object 'Range’failed“关于这一行:

代码语言:javascript
复制
 .UnMerge

你能帮我理解一下我似乎不能理解的是什么吗?

以下是我在另一篇文章中的原始代码:

代码语言:javascript
复制
Sub fixMergedCells(sh As Worksheet)
'replace merged cells by Center Acroos Selection
'high perf version using a hack: https://stackoverflow.com/a/9452164/78522
    Dim c As Range, used As Range
    Dim m As Range, i As Long
    Dim constFla: constFla = Array(xlConstants, xlFormulas)

    Set used = sh.UsedRange
    For i = 0 To 1  '1 run for constants, 1 for formulas
        Err.Clear
        On Error Resume Next
        Set m = Intersect(used.Cells.SpecialCells(constFla(i)), used.Cells.SpecialCells(xlBlanks))
        On Error GoTo 0
        If Not m Is Nothing Then
            For Each c In m.Cells
                If c.MergeCells Then
                    With c.MergeArea
                        'Debug.Print .Address
                        .UnMerge
                        .HorizontalAlignment = xlCenterAcrossSelection
                    End With
                End If
            Next c
        End If
    Next i
End Sub

Sub test_fixMergedCells()
    fixMergedCells ActiveSheet
End Sub
EN

回答 1

Stack Overflow用户

发布于 2018-07-03 23:49:34

你的子过程没有列在可用的‘宏’中,因为它有一个非可选的、不可变的参数。

尝试使用可选的变量类型参数,如果省略该参数,则使用ActiveSheet填充(我假设按钮已打开)。

代码语言:javascript
复制
Sub fixMergedCells(Optional sh As Variant)

    If IsMissing(sh) Then Set sh = ActiveSheet

    sh.Cells.UnMerge

End Sub

IsMissing只能与可选的变量类型参数一起使用。如果可选参数是variant类型,则带有可选参数的子过程仅作为可用‘宏’列出,以分配给按钮。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51157976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档