копировать строки в Excel VBA - PullRequest
1 голос
/ 05 июля 2019

Я пытаюсь скопировать три конкретные строки из ActiveSheet и хочу вставить / вставить эти три диапазона на основе ColorIndex.

 Dim last1Row As Long, J As Long

Set ws = ThisWorkbook.Sheets("sheet1")  'set you data sheet here
last1Row = ws.Cells(Rows.Count, "M").End(xlUp).Row  'get the last row in column A
For J = last1Row To 7 Step -1    'loop from last row to row 2
    If ws.Range("M" & J).Interior.ColorIndex = 37 Then
      ws.Range("M" & J + 2).EntireRow.Insert
        ws.Rows("4:4").Copy
        ws.Range("M" & J + 2).EntireRow.Insert
          ws.Rows("3:3").Copy
         ws.Range("M" & J + 2).EntireRow.Insert
         ws.Rows("1:1").Copy

         ws.Range("M" & J + 2).EntireRow.Insert

       ws.Rows("5:5").Copy


    End If
Next J

1 Ответ

0 голосов
/ 05 июля 2019

Попробуйте:

Dim last2Row As Long
Dim J As Integer

Set ws = ThisWorkbook.Sheets("sheet1")

last2Row = ws.Cells(Rows.Count, "M").End(xlUp).Row

For J = last2Row To 7 Step -1
    If ws.Range("M" & J).Interior.ColorIndex = 37 Then

        ws.Range("M" & J + 2).EntireRow.Insert
        ws.Rows("3:4").Copy
        ws.Range("M" & J + 2).EntireRow.Insert
        ws.Rows("1:1").Copy
        ws.Range("M" & J + 2).EntireRow.Insert
        ws.Rows("5:5").Copy


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