【问题标题】:How to Merge Cells Across Based on Cell's Value for Multiple Rows如何根据多行的单元格值合并单元格
【发布时间】:2019-06-16 05:31:50
【问题描述】:

每次我尝试运行我的宏时,由 LIRCounter 包围的第一部分运行良好,但 Excel 返回“运行时错误 '1004':应用程序定义或对象定义错误”,并且调试突出显示我的Range(...).Merge 我的宏的其余部分。

我已尝试通过删除 .Merge、Counter 变量并重写我的整个代码来重新格式化范围,但我无法缩小范围的哪一部分导致错误。

Sub MergeCells()

    Dim FirstRow As Long
    Dim LastRow As Long
    Dim TechnicalDataSheet As Worksheet
    Dim LIRCounter As Long
    Dim ETCounter As Long
    Dim ETCounter2 As Long

    FirstRow = 15
    LastRow = 44

    Set TechnicalDataSheet = Worksheets("Technical Data")

    With TechnicalDataSheet
        For LIRCounter = FirstRow To LastRow
            If Cells(LIRCounter, 19).Value = Not IsEmpty(Cells(LIRCounter, 19)) Then
            Else
                Range("U" & LIRCounter, "Z" & LIRCounter).Merge
            End If
            If Cells(LIRCounter, 19).Value = Not IsEmpty(Cells(LIRCounter, 19)) Then
            Else
                Range("U" & LIRCounter, "Z" & LIRCounter) = "N/A"
            End If
        Next LIRCounter

        For ETCounter = FirstRow To LastRow
            If Cells(ETCounter, 3).Value = "Structural" Then
                Range("D" & ETCounter, "L" & ETCounter).Merge
            End If
            If Cells(ETCounter, 3).Value = "Structural" Then
                Range("D" & ETCounter, "L" & ETCounter) = "N/A - Structural"
            End If
        Next ETCounter

        For ETCounter2 = FirstRow To LastRow
            If Cells(ETCounter2, 3).Value = "Structural" Then
                Range("O" & ETCounter2, "Z" & ETCounter2).Merge
            End If
            If Cells(ETCounter2, 3).Value = "Structural" Then
                Range("O" & ETCounter2, "Z" & ETCounter2) = "N/A - Structural"
            End If
        Next ETCounter2
    End With
End Sub

预期结果是,如果从单元格 C15 的下拉菜单中选择“结构”,则单元格 D15:L15 合并为一个单元格,并且单元格 O15:Z15 合并为一个单元格。直到第 44 行的每一行也是如此。当宏运行时,它只返回“运行时错误'1004':应用程序定义或对象定义的错误”并且没有合并任何单元格。

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    您已经编写了“With TechnicalDataSheet”但您下面的行指的是 Cells 而不是 .Cells 所以拿起活动表而不是你想要的目标。在所有单元格引用前添加句号

    【讨论】:

    • 成功了,谢谢!我是 VBA 新手,不知道这样简单的东西,非常感谢您的帮助!
    猜你喜欢
    • 2013-02-01
    • 2018-03-30
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    • 2022-12-10
    • 2013-07-12
    • 2015-01-17
    • 1970-01-01
    相关资源
    最近更新 更多