Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Копирование всех значений из заполненной области диапазона - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Копирование всех значений из заполненной области диапазона (Макросы/Sub)
Копирование всех значений из заполненной области диапазона
master-dd Дата: Пятница, 06.07.2018, 16:19 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 78
Репутация: 1 ±
Замечаний: 0% ±

2016
Полностью тема должна называться так: "Копирование всех значений из заполненной области базового диапазона во вторую непустую строку целевого диапазона"

Снова здравствуйте уважаемые форумчане. Столкнулся с такой проблемой (в качестве примера файл из вложения, в котором есть 2 листа "Откуда" и "Куда"). На листе "Откуда" есть базовый диапазон C2:H50, в котором столбцы могут быть заполнены по разному (для примера рядом разместил варианты).
Конечная цель - это скопировать область из базового диапазона, начиная с ячейки C2 (это константа, она не меняется) до первой не пустой строки (в файле-примере это область C2:H5 - выделил жирной обводкой). И затем скопированные значения вставить во вторую не пустую строку диапазона B2:F1048576 на листе "Куда" (также выделил жирной обводкой и подкрасил.

К сожалению своими силами вообще ничего не сделал - пересмотрел форумы в поисках кода для выделения первой непустой строки диапазона, но из всего множества вариантов мне ни один не подошёл. Поэтому своих интеллектуальных "потуг" в виде каких-либо кодов представить на суд публики на сей раз не могу.

Заранее спасибо всем, кто откликнется.
К сообщению приложен файл: _2.xlsb (11.2 Kb)
 
Ответить
СообщениеПолностью тема должна называться так: "Копирование всех значений из заполненной области базового диапазона во вторую непустую строку целевого диапазона"

Снова здравствуйте уважаемые форумчане. Столкнулся с такой проблемой (в качестве примера файл из вложения, в котором есть 2 листа "Откуда" и "Куда"). На листе "Откуда" есть базовый диапазон C2:H50, в котором столбцы могут быть заполнены по разному (для примера рядом разместил варианты).
Конечная цель - это скопировать область из базового диапазона, начиная с ячейки C2 (это константа, она не меняется) до первой не пустой строки (в файле-примере это область C2:H5 - выделил жирной обводкой). И затем скопированные значения вставить во вторую не пустую строку диапазона B2:F1048576 на листе "Куда" (также выделил жирной обводкой и подкрасил.

К сожалению своими силами вообще ничего не сделал - пересмотрел форумы в поисках кода для выделения первой непустой строки диапазона, но из всего множества вариантов мне ни один не подошёл. Поэтому своих интеллектуальных "потуг" в виде каких-либо кодов представить на суд публики на сей раз не могу.

Заранее спасибо всем, кто откликнется.

Автор - master-dd
Дата добавления - 06.07.2018 в 16:19
_Boroda_ Дата: Пятница, 06.07.2018, 16:47 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Так нужно?
[vba]
Код
Sub tt()
    cn_ = 6
    With ThisWorkbook.Sheets("Откуда")
        rn_ = .Range("C1").CurrentRegion.Rows.Count - 1
        If rn_ Then
            ar = .Range("C2").Resize(rn_, cn_)
        End If
    End With
    With ThisWorkbook.Sheets("Куда")
        For i = 1 To cn_
            r01_ = .Cells(.Rows.Count, 1 + i).End(3).Row
            If r01_ > r1_ Then
                r1_ = r01_
            End If
        Next i
        If r1_ = 1 Then r1_ = 0
        .Cells(r1_ + 2, 2).Resize(rn_, cn_) = ar
    End With
End Sub
[/vba]
Почему в Откуде на 1 столбец больше, чем Куде?

Файл перевложил
К сообщению приложен файл: _2_1.xlsb (18.6 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак нужно?
[vba]
Код
Sub tt()
    cn_ = 6
    With ThisWorkbook.Sheets("Откуда")
        rn_ = .Range("C1").CurrentRegion.Rows.Count - 1
        If rn_ Then
            ar = .Range("C2").Resize(rn_, cn_)
        End If
    End With
    With ThisWorkbook.Sheets("Куда")
        For i = 1 To cn_
            r01_ = .Cells(.Rows.Count, 1 + i).End(3).Row
            If r01_ > r1_ Then
                r1_ = r01_
            End If
        Next i
        If r1_ = 1 Then r1_ = 0
        .Cells(r1_ + 2, 2).Resize(rn_, cn_) = ar
    End With
End Sub
[/vba]
Почему в Откуде на 1 столбец больше, чем Куде?

Файл перевложил

Автор - _Boroda_
Дата добавления - 06.07.2018 в 16:47
master-dd Дата: Пятница, 06.07.2018, 17:34 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 78
Репутация: 1 ±
Замечаний: 0% ±

2016
_Boroda_, Очень большое спасибо!!! Всё как всегда элементарно, а моя ошибка при пробах оказывается была в этом: .Range("C1").CurrentRegion.Rows.Count- 1 - я "-1" не указывал...

По поводу кол-ва столбцов - это моя ошибка - в обоих листах их должно быть по 6.
 
Ответить
Сообщение_Boroda_, Очень большое спасибо!!! Всё как всегда элементарно, а моя ошибка при пробах оказывается была в этом: .Range("C1").CurrentRegion.Rows.Count- 1 - я "-1" не указывал...

По поводу кол-ва столбцов - это моя ошибка - в обоих листах их должно быть по 6.

Автор - master-dd
Дата добавления - 06.07.2018 в 17:34
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Копирование всех значений из заполненной области диапазона (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!