Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.08.2013, 16:34   #1
sasha555
Пользователь
 
Регистрация: 03.08.2013
Сообщений: 18
По умолчанию Копирование последней записи в столбце в назначенную ячейку

Добрый день!!! Помогите пожалуйста с макросом чтобы он делал такую работу: копировал последнюю запись в столбце В в ячейку В1, а последнюю запись в столбце С в ячейку С1 и так до столбца АО.

Последний раз редактировалось sasha555; 03.08.2013 в 16:46.
sasha555 вне форума Ответить с цитированием
Старый 03.08.2013, 16:58   #2
Watcher_1
Форумчанин
 
Аватар для Watcher_1
 
Регистрация: 22.06.2011
Сообщений: 325
По умолчанию

Код:
Sub m()
    For j = 2 To 41 'from B to AO
        DoEvents
        lastR = Cells(Rows.Count, j).End(xlUp).Row
        Cells(1, j) = Cells(lastR, j)
    Next
End Sub
Заказать макрос можно на сайте http://excel4you.ru/
Watcher_1 вне форума Ответить с цитированием
Старый 03.08.2013, 18:10   #3
sasha555
Пользователь
 
Регистрация: 03.08.2013
Сообщений: 18
По умолчанию

Огромное спасибо Watcher_1. все копирует, только я не учел что будут копироваться и последние записи с нолевым значением, как сделать так чтобы копировались последние записи которые больше НОЛЬ
sasha555 вне форума Ответить с цитированием
Старый 03.08.2013, 18:15   #4
Watcher_1
Форумчанин
 
Аватар для Watcher_1
 
Регистрация: 22.06.2011
Сообщений: 325
По умолчанию

Код:
Sub m()
    For j = 2 To 41 'from B to AO
        DoEvents
        myVal = Cells(Rows.Count, j).End(xlUp).Value
        if myVal>0 Then Cells(1, j) = myVal
    Next
End Sub
Заказать макрос можно на сайте http://excel4you.ru/
Watcher_1 вне форума Ответить с цитированием
Старый 03.08.2013, 19:09   #5
sasha555
Пользователь
 
Регистрация: 03.08.2013
Сообщений: 18
По умолчанию



Снова я неправильно изложил свою мысль. Пример привел на рисунке, потому что не могу правильно описать.Нужно чтоб копировалась последняя запись которая больше ноль или можно сделать только чтоб копировалось цифровые значение.
sasha555 вне форума Ответить с цитированием
Старый 03.08.2013, 19:50   #6
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

Можно обойтись и без макроса, формула массива (ввод Shift+Ctrl+Enter) для ячейки B1
Код:
=ИНДЕКС(B:B; МАКС(ЕСЛИ(B5:B125>0;СТРОКА(B5:B125);0)))
B5:B125 - замените на свой диапазон
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Старый 03.08.2013, 20:27   #7
Watcher_1
Форумчанин
 
Аватар для Watcher_1
 
Регистрация: 22.06.2011
Сообщений: 325
По умолчанию

как вариант НО нулей не должно быть между значениями, они должны быть с низу
Код:
Sub m()
    Dim myF As Range
    For j = 2 To 41 'from B to AO
        DoEvents
        myR = Cells(Rows.Count, j).End(xlUp).Row
        Set myF = Columns(j).Find("0", , xlValues, xlWhole)
        If Not myF Is Nothing Then
            If myF.Row < myR Then myR = myF.Row - 1
        End If
        Cells(1, j) = Cells(myR, j)
    Next
End Sub
Заказать макрос можно на сайте http://excel4you.ru/
Watcher_1 вне форума Ответить с цитированием
Старый 03.08.2013, 20:39   #8
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

Watcher_1, зачем Вам Find ... и можно с нулями в середине
Код:
Sub m()
    Dim myR&
    For j = 2 To 41 'from B to AO
        myR = Cells(Rows.Count, j).End(xlUp).Row
        While myR > 4 And Cells(myR, j) = 0
            myR = myR - 1
        Wend
        If myR > 4 Then Cells(1, j) = Cells(myR, j) Else Cells(1, j) = ""
    Next
End Sub
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Старый 03.08.2013, 21:08   #9
Watcher_1
Форумчанин
 
Аватар для Watcher_1
 
Регистрация: 22.06.2011
Сообщений: 325
По умолчанию

Не хотелось циклы гонять
Заказать макрос можно на сайте http://excel4you.ru/
Watcher_1 вне форума Ответить с цитированием
Старый 03.08.2013, 23:09   #10
sasha555
Пользователь
 
Регистрация: 03.08.2013
Сообщений: 18
По умолчанию



Спасибо!Все работает!!!Супер!!! помогите с тем же макросом только чтобы он копировал последние заполненные 5 ячеек в столбце F и вставлял данные в 2-ю строку как на рисунке. И так далее с периодичностью кожный 5 столбец (K,P,U,Z,AE,AJ и AO).
sasha555 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать ссылку на последнюю непустую ячейку в обновляемом столбце SVGuss Microsoft Office Excel 34 19.02.2013 16:12
Суммирование значении столбца в ячейке идущей за последней в столбце BROOKHUT Microsoft Office Excel 4 09.06.2012 10:38
Адрес последней ячейки в столбце списка ольгаг Microsoft Office Excel 8 02.11.2011 10:28
Копирование строки формул при добавлении записи в ячейку Uralmaster Microsoft Office Excel 17 01.02.2011 13:00
Формула значения последней (нижней) заполненной ячейки в столбце VictorM Microsoft Office Excel 16 09.09.2010 20:47