Страницы: 1
RSS
Добавить в конце таблицы строку из другой страницы
 
В этом файле есть таблица , а второй лист ("Перенос") на добавление нового продукта , как сделать так чтобы красная линия переносилась в таблицу макросом.
1) Нужно чтобы в таблице создавалась новая строка
2) И автоматически добавлялась строка из "Перенос" выделенная красным цветом в таблицу

1) проблему решил вроде
Код
Range("A" & Rows.Count).End(xlUp).Select
ActiveCell.EntireRow.Insert

2) а вторую хз как  
 
Цитата
написал:
И автоматически добавлялась строка из "Перенос" выделенная красным цветом в таблицу
а нужно как значения? или формулы так же? нужно в конецу таблицы или предопоследнюю (у вас макрос в пред последнюю)
Изменено: Mershik - 01.12.2021 14:32:04
Не бойтесь совершенства. Вам его не достичь.
 
как значения

Цитата
написал: нужно в конецу таблицы или предопоследнюю (у вас макрос в пред последнюю)
по возможности и это тоже исправить
 
gasan aliev, зачем куча сообщений ?можно дополнять. не понял для чего добавлять строку поэтом просто добавляю в конец таблицы
Код
Sub mrshkei()
Dim sh As Worksheet, sh2 As Worksheet, lr As Long, lcol As Long, rng As Range
Set sh = Worksheets("таблица"): Set sh2 = Worksheets("Перенос (отсюда)")
Set rng = sh2.Range("K4:FC4")
lr = sh.Cells(Rows.Count, 1).End(xlUp).Row + 1
lcol = sh.Cells(1, Columns.Count).End(xlToLeft).Column
    rng.Copy
    sh.Cells(lr, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
     Rows(lr - 2 & ":" & lr - 2).Copy
     Rows(lr & ":" & lr).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
End Sub
еще вариант
Код
Sub mrshkei()
Application.ScreenUpdating = False
Dim sh As Worksheet, sh2 As Worksheet, lr As Long, lcol As Long, rng As Range, arr, i As Long, n As Long
Set sh = Worksheets("таблица"): Set sh2 = Worksheets("Перенос (отсюда)")
arr = sh2.Range("K3:FC4")
lr = sh.Cells(Rows.Count, 1).End(xlUp).Row + 1
lcol = sh.Cells(1, Columns.Count).End(xlToLeft).Column
For n = 1 To lcol
    For i = LBound(arr) To UBound(arr, 2) - LBound(arr) + 1
        If arr(1, i) = sh.Cells(1, n) Then
        If arr(2, i) <> 0 Then
            sh.Cells(lr, n) = arr(2, i): Exit For
        End If
        End If
    Next i
Next n
     Rows(lr - 2 & ":" & lr - 2).Copy
     Rows(lr & ":" & lr).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
Изменено: Mershik - 01.12.2021 15:01:17
Не бойтесь совершенства. Вам его не достичь.
Страницы: 1
Наверх