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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.11.2011, 22:30   #1
Irek11
Пользователь
 
Регистрация: 05.01.2011
Сообщений: 32
По умолчанию Копирование значений с одного листа на другойпо условию

Здравствуйте. Не могу понять как написать макрос на копирование значений с одного листа на другой по условию. Файл прилагается.Помогите.
Irek11 вне форума Ответить с цитированием
Старый 17.11.2011, 23:03   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Способ небыстрый, но интересный, хотя конечно годится не для всех случаев:
Код:
Sub tt()
    Dim cc, i&
    For Each cc In Sheets("prn2").[a4:an1004].SpecialCells(xlCellTypeFormulas)
        If Len(Trim(cc.Value)) Then
            i = i + 1
            Sheets("prn3").[a20:an1024].Item(i) = cc.Value
        End If
    Next
End Sub
Вместо [a20:an1024] можете [a1:an1004] указать - я просто затирать пример не хотел.
Если бы формулы не возвращали пробел - можно было бы чуть иначе и быстрее код написать.
Хотя конечно и так можно иначе и быстрее..
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 17.11.2011 в 23:09.
Hugo121 вне форума Ответить с цитированием
Старый 19.11.2011, 03:06   #3
Irek11
Пользователь
 
Регистрация: 05.01.2011
Сообщений: 32
По умолчанию Спасибо Hugo121. Макрос работает, но с ошибкой.

Копирование данных и перенос, осуществляется не строго в как хотелось бы, смешивая данные в колонках. Файл с описанием прикреплен.

Последний раз редактировалось Irek11; 19.11.2011 в 03:10.
Irek11 вне форума Ответить с цитированием
Старый 19.11.2011, 03:13   #4
Irek11
Пользователь
 
Регистрация: 05.01.2011
Сообщений: 32
По умолчанию Вот файл

файл для просмотра.
Irek11 вне форума Ответить с цитированием
Старый 19.11.2011, 05:27   #5
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Ну надо было сразу такой пример показать - код был бы другой.
Посмотрите такой вариант (i = 36 замените на своё значение):

Код:
Sub tt()
    Dim cc As Range, i&, a()
    Application.ScreenUpdating = False
    i = 36
    For Each cc In Sheets("pbs2").[a4:a2006].Cells
        If Len(Trim(cc.Value)) Then
            i = i + 1
            a = cc.Resize(, 20).Value
            With Sheets("pbs3").Cells(i, 1).Resize(, 20)
                .Value = a
                .Borders.Weight = xlThin
            End With
        End If
    Next
    i = 36
    For Each cc In Sheets("pbs2").[u4:u2006].Cells
        If Len(Trim(cc.Value)) Then
            i = i + 1
            a = cc.Resize(, 20).Value
            With Sheets("pbs3").Cells(i, 21).Resize(, 20)
                .Value = a
                .Borders.Weight = xlThin
            End With
        End If
    Next
    Application.ScreenUpdating = True
End Sub
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 20.11.2011, 10:55   #6
Irek11
Пользователь
 
Регистрация: 05.01.2011
Сообщений: 32
По умолчанию

Спасибо Вам Hugo121 вариант работает
Irek11 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перенос строк с одного листа на другой по условию Irek11 Microsoft Office Excel 12 13.11.2011 20:45
Копирование с одного листа на другой + вычисления rus65 Microsoft Office Excel 4 25.07.2011 14:34
копирование ячейки с одного листа в другой RECit Microsoft Office Excel 7 02.08.2010 20:37
Копирование информации из одного листа на другой Юрийpirs2008 Microsoft Office Excel 6 24.03.2009 07:59
перенос значений с одного листа на другой ANDREEY Помощь студентам 2 10.02.2009 23:22