Excel VBA работает как задумано в редакторе кода, но не в Excel

У меня есть код, который требует скопировать диапазон данных с одного листа, вставить его на другой лист, а затем удалить его. Когда я запускаю код в редакторе кода VBA в Excel, он работает как задумано, однако, когда я запускаю его через электронную таблицу с помощью кнопки форм, он всегда пропускает последний столбец. И не имеет значения, если я увеличу столбец в диапазоне, он всегда занимает на один столбец меньше, чем нужно. Мой пример кода ниже

        'Copy Rebar Data
    If RebarRowNumStart <> 0 And RebarRowNumEnd <> 0 Then
    Worksheets("Temp-Data").Range("A" & RebarRowNumStart & ":I" & RebarRowNumEnd).Copy Worksheets("Rebar-Data").Range("A4:I" & (RebarRowNumEnd - RebarRowNumStart + 4))
    End If

    If WeldsRowNumStart <> 0 And WeldsRowNumEnd <> 0 Then
    Worksheets("Temp-Data").Range("A" & WeldsRowNumStart & ":G" & WeldsRowNumEnd).Copy Worksheets("Welds-Data").Range("A4:G" & (WeldsRowNumEnd - WeldsRowNumStart + 4))
    End If

    If EarthingRowNumStart <> 0 And EarthingRowNumEnd <> 0 Then
    Worksheets("Temp-Data").Range("A" & EarthingRowNumStart & ":k" & EarthingRowNumEnd).Copy Worksheets("Earthing Bars").Range("A4:K" & (EarthingRowNumEnd - EarthingRowNumStart + 4))
    End If

    If AnchorRowNumStart <> 0 And AnchorRowNumEnd <> 0 Then
    Worksheets("Temp-Data").Range("A" & AnchorRowNumStart & ":K" & AnchorRowNumEnd).Copy Worksheets("Anchor Plates").Range("A4:K" & (AnchorRowNumEnd - AnchorRowNumStart + 4))
    End If

    If HalfenRowNumStart <> 0 And HalfenRowNumEnd <> 0 Then
    Worksheets("Temp-Data").Range("A" & HalfenRowNumStart & ":K" & HalfenRowNumEnd).Copy Worksheets("Halfen Channels").Range("A4:K" & (HalfenRowNumEnd - HalfenRowNumStart + 4))
    End If

    If ConesRowNumStart <> 0 And ConesRowNumEnd <> 0 Then
    Worksheets("Temp-Data").Range("A" & ConesRowNumStart & ":K" & ConesRowNumEnd).Copy Worksheets("Cones").Range("A4:K" & (ConesRowNumEnd - ConesRowNumStart + 4))
    End If

    'Delete Data
    Range("A2:K" & LastRow).Clear

Так что он работает нормально, когда я запускаю в редакторе кода, но не от нажатия кнопки. Пытался запустить его в Excel 2007 и 2016, те же результаты. Ваша помощь ценится.

Цель этого состоит в том, чтобы прочитать набор данных в электронной таблице с именем "Temp-Data", чтобы выяснить, что им соответствует, а затем скопировать их в нужную электронную таблицу в той же книге. Он работает так, как задумано, за исключением той части, где он не копирует / вставляет / удаляет последний столбец ("K"). PS: отлично работает, когда я бегу через редактор кода

0 ответов

Другие вопросы по тегам