合并具有分页符的单元格,Excel没有响应

约翰·坎普

我正在尝试将电子表格的选定列中的重复单元格合并在一起,而不必使合并的单元格跨分页符,以便在打印后可读。到目前为止,我所拥有的是:

Option Explicit

Sub MergeSameCells()

Application.DisplayAlerts = False

MergeCells:

For Each rng In Selection

    If rng.Offset(1, 0).Value And rng.Value <> "" And rng.Offset(1, 0).EntireRow.PageBreak = -4142 Then
        Range(rng, rng.Offset(1, 0)).Merge
        Range(rng, rng.Offset(1, 0)).HorizontalAlignment = xlCenter
        Range(rng, rng.Offset(1, 0)).VerticalAlignment = xlCenter
        GoTo MergeCells
    End If

Next

Application.DisplayAlerts = True

End Sub

这将导致VBA无限期运行,并且Excel给出“无响应”错误。是否有更好的方法来避免这些性能问题?

豪猪

这里有些错误:

  1. 通常,不要goto在错误处理之外使用语句(可能有一些例外,但这不是其中之一)。

  2. IF没有执行您在问题中指定的操作。

    rng.Offset(1, 0).Value 只是试图求真,所以数字和布尔值而不是字符串。

    rng.value <> "" 正在跳过空字符串,这可能是一个问题,因为合并的单元格仅从最左上角的地址获取值,如果您有三行需要合并在一起,它将始终跳过第二次合并。

    您根本不需要比较单元格值。

  3. IF很可能经常是正确的,并且使用gotowill keep循环,会使您陷入无限循环

我相信这样的事情更符合您的需求:

    Dim rng As Range
    Dim rngval As Variant
    Dim rowoffset As Integer
    rowoffset = 0
    For Each rng In Selection 'It's generally not the best practice to use selection
        rngval = rng.Value
        Do While rngval = "" 
        'This loop will just keep plowing backwards until it finds a non empty value within your selection. 
        'That gets you the last cell that has a value as merge destroys the values.
            rngval = rng.Offset(rowoffset, 0).Value
            rowoffset = rowoffset - 1
        Loop
        If rngval = rng.Offset(1, 0).Value And rng.Offset(1, 0).EntireRow.PageBreak = -4142 Then 
            Range(rng, rng.Offset(1, 0)).Merge
        End If
        rowoffset = 0
    Next

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

表格视图中的单元格没有响应

来自分类Dev

当某些单元格具有详细信息披露指示符而有些单元格没有细节披露指示符时,使UILabel对齐

来自分类Dev

当某些单元格具有详细信息披露指示符而有些单元格没有细节披露指示符时,使UILabel对齐

来自分类Dev

Microsoft Excel-合并具有日期和时间的单元格

来自分类Dev

ODS Excel / Proc报告-没有自动换行/合并单元格?

来自分类Dev

合并具有先前值的空单元格

来自分类Dev

合并具有先前值的空单元格

来自分类Dev

SumIf 具有合并行的特定单元格

来自分类Dev

具有动态单元格标识符的UICollectionView

来自分类Dev

Excel:计算单元格内所有具有双倍(中文)字符的单元格

来自分类Dev

返回具有不同单元格标识符的单元格

来自分类Dev

TableViewCell:出列的单元格不是具有标识符的单元格的实例

来自分类Dev

Excel - 匹配具有相同代码的所有行,然后复制并合并单元格的内容

来自分类Dev

Excel VBA:查找具有相似值的单元格

来自分类Dev

Excel图表引用具有公式的单元格

来自分类Dev

具有多个单元格比较的Excel条件格式

来自分类Dev

具有相对单元格的excel返回公式

来自分类Dev

具有超链接的Excel单元格

来自分类Dev

Excel上的VBA删除没有颜色的单元格和相邻单元格

来自分类Dev

如何合并具有相同字段名称的Excel中的两个单元格

来自分类Dev

从具有合并单元格的Excel文件中获取数据并存储在MySQL数据库中

来自分类Dev

启动单元测试后,GUI没有响应

来自分类Dev

转换运算符(assignment operator =)没有响应

来自分类Dev

如何合并一列中的行(具有合并单元格的GridView)

来自分类Dev

如何在没有colspan的情况下合并/合并HTML表格单元格

来自分类Dev

如果其上方的单元格具有内容但自身为空白,则如何合并列中的单元格

来自分类Dev

ActionListener没有响应?

来自分类Dev

UISearchController没有响应

来自分类Dev

OnClickListener没有响应

Related 相关文章

  1. 1

    表格视图中的单元格没有响应

  2. 2

    当某些单元格具有详细信息披露指示符而有些单元格没有细节披露指示符时,使UILabel对齐

  3. 3

    当某些单元格具有详细信息披露指示符而有些单元格没有细节披露指示符时,使UILabel对齐

  4. 4

    Microsoft Excel-合并具有日期和时间的单元格

  5. 5

    ODS Excel / Proc报告-没有自动换行/合并单元格?

  6. 6

    合并具有先前值的空单元格

  7. 7

    合并具有先前值的空单元格

  8. 8

    SumIf 具有合并行的特定单元格

  9. 9

    具有动态单元格标识符的UICollectionView

  10. 10

    Excel:计算单元格内所有具有双倍(中文)字符的单元格

  11. 11

    返回具有不同单元格标识符的单元格

  12. 12

    TableViewCell:出列的单元格不是具有标识符的单元格的实例

  13. 13

    Excel - 匹配具有相同代码的所有行,然后复制并合并单元格的内容

  14. 14

    Excel VBA:查找具有相似值的单元格

  15. 15

    Excel图表引用具有公式的单元格

  16. 16

    具有多个单元格比较的Excel条件格式

  17. 17

    具有相对单元格的excel返回公式

  18. 18

    具有超链接的Excel单元格

  19. 19

    Excel上的VBA删除没有颜色的单元格和相邻单元格

  20. 20

    如何合并具有相同字段名称的Excel中的两个单元格

  21. 21

    从具有合并单元格的Excel文件中获取数据并存储在MySQL数据库中

  22. 22

    启动单元测试后,GUI没有响应

  23. 23

    转换运算符(assignment operator =)没有响应

  24. 24

    如何合并一列中的行(具有合并单元格的GridView)

  25. 25

    如何在没有colspan的情况下合并/合并HTML表格单元格

  26. 26

    如果其上方的单元格具有内容但自身为空白,则如何合并列中的单元格

  27. 27

    ActionListener没有响应?

  28. 28

    UISearchController没有响应

  29. 29

    OnClickListener没有响应

热门标签

归档