Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Visual Basic Новый топик    Ответить
 копирование ячейки выше активной строки  [new]
yjn
Member

Откуда:
Сообщений: 3
вроде нашел макрос. но не работает как мне надо.
1) Надо копировать активную строку и вставить строку, сданными и формулами активной строки выше или ниже, где будет обозначена активная ячейка или строка, то есть там будет находится курсор. Вставить выше или ниже. (именно вставить а не заменить содержимое ячеек, значит должен пороизойти сдвиг массива).

2) Допустим произвел действия со строкой 3. Но происходит сбой массива в формулах. То есть во 2 и 3 строке они не соответствуют ряду колонки В, лучше посмотреть, лучше посмотреть колонки В и С.

3) Как сделать, чтобы от активной строки взять копию формулы с ячейки на 2 строки выше колонки В активной строки и копировать на 2 строки колонки В ниже от активной строки или что бы формулы менялись соответственно своим строкам
.Заранее благодарен
25 июл 20, 12:54    [22173545]     Ответить | Цитировать Сообщить модератору
 Re: копирование ячейки выше активной строки  [new]
ldfanate
Member

Откуда:
Сообщений: 205
видимо речь о копировании на листе экселя :)

используйте конструкции .Offset(-1,0) чтобы сместиться на 1 строку вверх, и .EntireRow чтобы копировать-вставлять всю строку листа.
27 июл 20, 08:38    [22173998]     Ответить | Цитировать Сообщить модератору
 Re: копирование ячейки выше активной строки  [new]
Roman Mejtes
Member

Откуда: г. Пермь
Сообщений: 3886
самое время открыть для себе RC указатели в Excel
27 июл 20, 08:39    [22174001]     Ответить | Цитировать Сообщить модератору
 Re: копирование ячейки выше активной строки  [new]
yjn
Member

Откуда:
Сообщений: 3
ldfanate, благодарю ,я уже догадался изменить на Offset(-1,0), но мне нужно, чтобы при вставке строки копировалась вся строка или определенная ячейка -допустим "В" на одну строку выше активной строки и вставка была на активную и на две ниже. С EntireRow пока не получается справиться. Думаю за 15 лет можно кое что забыть. Если активная строка допустим "С" пересчет идет в той же строке. На "В" не получается. Может константу столбца "В" сделать? Подскажите, что бы не рылся. Заранее благодарен

Sub вставка_строки()
    If Application.Intersect(ActiveCell, ActiveSheet.UsedRange) Is Nothing _
        Or ActiveCell.Row < 3 Then
            MsgBox "Активная ячейка вне таблицы"
    Else
        Rows(ActiveCell.Row).Insert
        Rows(ActiveCell.Row + 1).Copy Rows(ActiveCell.Row)
    ActiveCell.Offset(-1, 0).Range("A1").Select
    Application.CutCopyMode = False
    Selection.Copy
    ActiveCell.Offset(1, 0).Range("A1:A3").Select
    ActiveSheet.Paste
    End If
End Sub
Модератор: Учимся использовать тэги оформления кода - FAQ


Сообщение было отредактировано: 29 июл 20, 19:28
29 июл 20, 15:53    [22175255]     Ответить | Цитировать Сообщить модератору
 Re: копирование ячейки выше активной строки  [new]
ldfanate
Member

Откуда:
Сообщений: 205
ActiveCell.Offset(-1, 0).Range("A1").Select
...
ActiveCell.Offset(1, 0).Range("A1:A3").Select


Что это за жуть? Зачем относительное смещение (osffset) совмещать с абсолютными координатами (А1:А3 и проч)?
29 июл 20, 16:49    [22175287]     Ответить | Цитировать Сообщить модератору
 Re: копирование ячейки выше активной строки  [new]
ldfanate
Member

Откуда:
Сообщений: 205
Сделайте макрорекордером запись одной ручной операции копировать строку-вставить строку. А потом добавьте туда необходимые смещения.
29 июл 20, 16:53    [22175291]     Ответить | Цитировать Сообщить модератору
 Re: копирование ячейки выше активной строки  [new]
yjn
Member

Откуда:
Сообщений: 3
я уже думал, что нет на просторах всемирной помойки умных людей. Нашлпись трое. ActiveCell. Смещение (0, 3). Range ( "A1"). ActiveCell. Смещение (0, 3). Range ( "A1"). 1
ActiveCell.Offset(4, 2).Range("A1").Select. Цитирую "Допустимость второй формы (вставляю свое пояснение- с ранг) мало кому известна" Исправил и УСЁ у МЕНЕ заработало с ранг, а тебе хам не скажу
2 авг 20, 11:36    [22176654]     Ответить | Цитировать Сообщить модератору
Все форумы / Visual Basic Ответить