Как объединить ячейки на основе значения ячейки для нескольких строк - PullRequest
0 голосов
/ 22 января 2019

Каждый раз, когда я пытаюсь запустить свой макрос, первый раздел, окруженный LIRCounter, работает нормально, но Excel возвращает «Ошибка времени выполнения« 1004 »: ошибка приложения или объекта», а отладка выделяет мой Range (...). Объединение разделов в остальной части моего макроса.

Я попытался переформатировать диапазон, удалив .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 »: ошибка приложения или объекта», и ячейки не объединяются.

1 Ответ

0 голосов
/ 22 января 2019

Вы написали «With TechnicalDataSheet», но ваши строки ниже относятся к ячейкам, а не к ячейкам, поэтому выбирайте активную таблицу, а не желаемую цель.Добавьте все остановки перед всеми ссылками Cells

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...