Те же строки из одного диапазона копируются при копировании строк из другого диапазона - PullRequest
1 голос
/ 05 июня 2019

У меня есть код для копирования строки с ошибками формулы на другой лист.

Проблема в копировании строк для:
«Выполнить формулы для MF, скопировать / вставить в выходной лист MF» (Вторая половина).

Похоже, что он копирует те же строки, которые были ошибочными для «Запустить формулы для Lago, скопировать / вставить в выходной лист Lago», даже если эти ячейки были очищены от содержимого. Я искал ошибки в этих строках, но их не было.

Тот же код работает, как и предполагалось для других электронных таблиц.

Моя теория заключается в том, что он запоминает строки ошибок и переписывает их, но должен сбрасываться при повторном запуске.

'Run Formulas for Lago, copy/Paste to Lago Output Sheet
With ws
    lrow = .Range("A" & .Rows.Count).End(xlUp).Row
    .Range("AT2:BC" & lrow).Formula = .Range("AT2:BC2").Formula
End With

With Worksheets("Fall").Range("A3:CU" & lrow)
    On Error Resume Next
    Set eRng = .SpecialCells(xlCellTypeFormulas, xlErrors)
    On Error GoTo 0
    If Not eRng Is Nothing Then
        Intersect(.Parent.Range("A:CU"), eRng.EntireRow).Copy
        Worksheets("Lago").Range("A3").PasteSpecial Paste:=xlPasteValues
        Application.CutCopyMode = False
    End If
    End With
Range("AT3:BC" & lrow).ClearContents

'Run Formulas for MF, copy/paste to MF output sheet
With ws
    lrow = .Range("A" & .Rows.Count).End(xlUp).Row
    .Range("BE2:BN" & lrow).Formula = .Range("BE2:BN2").Formula
End With

With Worksheets("Fall").Range("A3:CU" & lrow)
    On Error Resume Next
    Set eRng = .SpecialCells(xlCellTypeFormulas, xlErrors)
    On Error GoTo 0
    If Not eRng Is Nothing Then
        Intersect(.Parent.Range("A:CU"), eRng.EntireRow).Copy
        Worksheets("MF").Range("A3").PasteSpecial Paste:=xlPasteValues
        Application.CutCopyMode = False
    End If
    End With
Range("BE3:BN" & lrow).ClearContents

1 Ответ

0 голосов
/ 05 июня 2019
'Run Formulas for Lago, copy/Paste to Lago Output Sheet
With ws
    lrow = .Range("A" & .Rows.Count).End(xlUp).Row
    .Range("AT2:BC" & lrow).Formula = .Range("AT2:BC2").Formula
End With

With Worksheets("Fall").Range("A3:CU" & lrow)
    On Error Resume Next
    Set eRng = .SpecialCells(xlCellTypeFormulas, xlErrors)
    On Error GoTo 0
    If Not eRng Is Nothing Then
        Intersect(.Parent.Range("A:CU"), eRng.EntireRow).Copy
        Worksheets("Lago").Range("A3").PasteSpecial Paste:=xlPasteValues
        Application.CutCopyMode = False
    End If
    End With
Range("AT3:BC" & lrow).ClearContents

'Run Formulas for MF, copy/paste to MF output sheet
With ws
    lrow = .Range("A" & .Rows.Count).End(xlUp).Row
    .Range("BE2:BN" & lrow).Formula = .Range("BE2:BN2").Formula
End With

With Worksheets("Fall").Range("A3:CU" & lrow)
    On Error Resume Next
    Set eRg = .SpecialCells(xlCellTypeFormulas, xlErrors) '<---- Changed to eRg from eRng
    On Error GoTo 0
    If Not eRg Is Nothing Then '<---- Changed to eRg from eRng
        Intersect(.Parent.Range("A:CU"), eRng.EntireRow).Copy
        Worksheets("MF").Range("A3").PasteSpecial Paste:=xlPasteValues
        Application.CutCopyMode = False
    End If
    End With
  Range("BE3:BN" & lrow).ClearContents
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...