макрос копирования и вставки в одну строку, который будет повторяться в зависимости от содержимого ячейки между листами - PullRequest
0 голосов
/ 31 октября 2018

У меня есть лист с диапазоном A12: n112, и в этом столбце диапазона A будет "0" ИЛИ "1" на основе других критериев. (У меня есть код, который сортирует данные так, чтобы все строки с 1 были в верхней части этого диапазона - это прекрасно работает)

У меня есть еще один фрагмент кода, который мне нужен для копирования ячеек B: L в строке, столбец A которой содержит «1» в первой пустой строке на другом листе. Затем генерируется число на втором листе, а затем этот номер копируется обратно на исходный лист в той же строке в столбце М.

Когда я установил фиксированный диапазон, я могу сделать это без каких-либо проблем, но я пытаюсь сделать это динамически, поскольку данные, вводимые в B через L, будут отличаться при каждом использовании листа.

Может кто-нибудь помочь, вот мой НОВЫЙ код

Dim lr As Long
lr = Sheets("Data Entry").Cells(Rows.Count, "A").End(xlUp).Row

    For r = lr To 2 Step 1
    If Range("AB" & r).Value = "1" Then
        Rows(r).Copy.Range ("A" & lr2 + 1)
        Windows("Serialisation Log.xlsx").Activate
        Sheets("SNo Log").Select
        Range("D" & Rows.Count).End(xlUp).Offset(1).Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Application.CutCopyMode = False
        Windows("Serialisation Log.xlsx").Activate
        Sheets("SNo Log").Select
        Range("A" & Rows.Count).End(xlUp).Offset(-1).Select
        Selection.Copy
        Range("A" & Rows.Count).End(xlUp).Offset(1).Select
        ActiveSheet.Paste
        Range("A" & Rows.Count).End(xlUp).Offset(0).Select
        Selection.Copy

        Windows("Serialisation Generator rev 1.xlsm").Activate
        Worksheets("Data Entry").Select
        Range("N").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

    End If
    If Range("AB" & r).Value = "0" Then
       Range("I4").Select
       ActiveCell.FormulaR1C1 = "Serial No. Issue complete for this OA"
    End If
    Range("F5").Select
Next r

Кажется, что это работает без ошибок, но ничего не копирует и не вставляет - ни советов, ни советов. (обратите внимание, что я сильно изменил этот вопрос и кодирую его, поэтому приведенные ниже первоначальные ответы могут больше не применяться.

Любая помощь очень ценится.

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