Страницы: 1
RSS
Поиск этой же строки в другом столбце в VBA
 
Уважаемые программисты, помогите пожалуйста продвинуться в написании кода.
В общем я застопорился на следующем моменте:
Range("d4").End(xlDown).Select
   ActiveCell.Offset(1, 0).Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False    'на этом этапе мы находим последнюю строчку диапазона и смещаемся на одну вниз, чтобы туда вставлять скопированные данные.
Но дело в том что мне данные нужно вставить в столбец M, а по D я просто нахожу последнюю строку диапазона, т.к. в М возможны Null , а в D обязательно имеются данные.
Заранее благодарю!
 
Код
cell(Range("d4").End(xlDown).row, "M").Offset(1, 0).Select
Изменено: JayBhagavan - 18.04.2022 17:34:00

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Артем_81,  код следует оформлять соответствующим тегом. Для этого используйте кнопку <...>
 
Цитата
написал:
cell(Range("d4").End(xlDown).row, "M").Offset(1, 0).Select
Имеется ввиду что так нужно написать?

<Cell(Range("d4").End(xlDown).Row, "M").Offset(1, 0).Select
   ActiveCell.Offset(1, 0).Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False>
 
Код
Cells(Range("D4").End(xlDown).Row, [M1].Column).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Прислушайтесь к совету
Цитата
написал:
код следует оформлять соответствующим тегом. Для этого используйте кнопку  
 
Благодарю, строка работает, помогли продвинуться по коду.
Так я же обрамил код в "<>", почему-то он все равно не окультурился... что не так подскажите плиз!
 
окультурить
 
Благодарю!
 
Цитата
написал:
Cells(Range("D4").End(xlDown).Row, [M1].Column).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=Fals
Возвращаясь к этой строке кода подскажите пожалуйста, возможно ли например по всей длине диапазона D данные которого мы вставляем в столбец M вставить нулевые значения (не Null, а именно 0) в столбец N?
 
Изменено: Артем_81 - 19.04.2022 15:57:06
 
Код
Cells(Range("D4").End(xlDown).Row, [N1].Column).Offset(1, 0).Resize(Selection.Rows.Count).Value = 0
 
Отлично, эту
Код
Cells(Range("D4").End(xlDown).Row, [N1].Column).Offset(1, 0).Resize(Selection.Rows.Count).Value = 0
строку подставил ниже этой и все работает как часики!
Код
Cells(Range("D4").End(xlDown).Row, [M1].Column).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=Fals

А можете еще помочь дописать код до совершенства: чтобы протягивались формулы (на листе в который вставляются данные кодом) которые содержатся в столбцах B,C,E,H,I,J,K,L,N,P, но формулы находятся на строку выше (т.к. мы используем Offset(1,0), чем строка в которую мы начинаем вставлять наш диапазон с данными.

 
Код
...
    CopyColumn [B1].Column
    CopyColumn [C1].Column
    CopyColumn [E1].Column

End Sub

Sub CopyColumn(xx As Integer)
    Cells(Range("D4").End(xlDown).Row, xx).Copy Cells(Range("D4").End(xlDown).Row, xx).Offset(1, 0).Resize(Selection.Rows.Count)
End Sub
 
А не подскажете как этот код интегрировать в уже имеющийся код? Это нижняя часть моего кода. Я попытался добавить вниз, отладчик ругается. Обязательно заканчивать нужно процедуру, и новую открывать?
Код
    Windows("Отчет_БПИФ_xml.xlsm").Activate                 ' Активировать нужную книгу (переключиться)
    Range("J2").Select
    Range(Selection, Selection.End(xlDown)).Select          ' выделили весь отфильтрованный столбец Новые до конца
    Selection.Copy
    Windows("РЕЕСТР ПРИВЛЕЧЕНИЙ 2022.xlsx").Activate
    Cells(Range("D4").End(xlDown).Row, [G1].Column).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False     'спустились до конца столбца D (т.к. он отправная точка, т.к. всегда заполнен) и вставили теперь Новые в (G)

    Windows("Отчет_БПИФ_xml.xlsm").Activate  ' Активировать нужную книгу (переключиться)
    Range("C2").Select
    Range(Selection, Selection.End(xlDown)).Select          ' выделили весь отфильтрованный столбец Фонд до конца
    Selection.Copy
    Windows("РЕЕСТР ПРИВЛЕЧЕНИЙ 2022.xlsx").Activate
    Cells(Range("D4").End(xlDown).Row, [D1].Column).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False     'спустились до конца столбца D (т.к. он отправная точка, т.к. всегда заполнен) и вставили теперь Фонды в (D)
   
 
Найдите у себя в коде строку
Код
End Sub

Вместо неё вставьте
Код
    CopyColumn [B1].Column
    CopyColumn [C1].Column
    CopyColumn [E1].Column
 
End Sub
 
Sub CopyColumn(xx As Integer)
    Cells(Range("D4").End(xlDown).Row, xx).Copy Cells(Range("D4").End(xlDown).Row, xx).Offset(1, 0).Resize(Selection.Rows.Count)
End Sub
 
Сделал вот так, но ничего не работает, формулы не протягивает
Код
   Windows("Отчет_БПИФ_xml.xlsm").Activate  ' Активировать нужную книгу (переключиться)
    Range("C2").Select
    Range(Selection, Selection.End(xlDown)).Select          ' выделили весь отфильтрованный столбец Фонд до конца
    Selection.Copy
    Windows("РЕЕСТР ПРИВЛЕЧЕНИЙ 2022.xlsx").Activate
    Cells(Range("D4").End(xlDown).Row, [D1].Column).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False     'спустились до конца столбца D (т.к. он отправная точка, т.к. всегда заполнен) и вставили теперь Фонды в (D)

    CopyColumn [B1].Column
    CopyColumn [C1].Column
    CopyColumn [E1].Column
    CopyColumn [H1].Column
    CopyColumn [I1].Column
    CopyColumn [J1].Column
    CopyColumn [K1].Column
    CopyColumn [L1].Column
    CopyColumn [N1].Column
    CopyColumn [P1].Column
    
    
  
End Sub
  
Sub CopyColumn(xx As Integer)
    Cells(Range("D4").End(xlDown).Row, xx).Copy Cells(Range("D4").End(xlDown).Row, xx).Offset(1, 0).Resize(Selection.Rows.Count)

End Sub
    
Страницы: 1
Наверх