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

Вход

Регистрация

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

 

= Мир MS Excel/копирования выборочных данных с 2листа в 3 лист - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
копирования выборочных данных с 2листа в 3 лист
vitek73 Дата: Понедельник, 09.01.2023, 16:17 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 54
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
копирования через макрос выборочных данных с 2 листа в 3 лист конкретную(30)строку со сдвигом вниз
с 3го листа макрос выполняется,но если запускать с 1го, пытается добавить 30 строку на 1ом листе, что напрочь не надо.
а как указать лист, чтоб именно в 3ем добавлял строку не знаю,)
К сообщению приложен файл: _090123.xlsm (162.9 Kb)


vitёk73

Сообщение отредактировал vitek73 - Понедельник, 09.01.2023, 16:19
 
Ответить
Сообщениекопирования через макрос выборочных данных с 2 листа в 3 лист конкретную(30)строку со сдвигом вниз
с 3го листа макрос выполняется,но если запускать с 1го, пытается добавить 30 строку на 1ом листе, что напрочь не надо.
а как указать лист, чтоб именно в 3ем добавлял строку не знаю,)

Автор - vitek73
Дата добавления - 09.01.2023 в 16:17
jun Дата: Понедельник, 09.01.2023, 17:07 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 145
Репутация: 43 ±
Замечаний: 0% ±

vitek73, здравствуйте! Попробуйте код:
[vba]
Код
Sub ВСЁ2023()
'вся статистика
' работает с любого листа
Dim arr() As Variant, j As Long, rng As Range, i As Range
With Worksheets(2)
    ' объеденяем диапазоны листа 2 для загрузки в массив
    Set rng = Application.Union(.[A30:G30], .[I30], .[J30])
    j = 1 ' счетчик массива
    ' загрузка диапазона rng в массив arr
    For Each i In rng
       ReDim Preserve arr(1 To j)
       arr(j) = i.Value
       j = j + 1
    Next i
End With
    
With Worksheets(3)
    ' вставляем 30 строку на лист 3
    .Rows(30).EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 'вставляем 30ю строку
    ' вставляем значения из массива на 3 лист в 30 строку
    .Cells(30, 1).Resize(1, UBound(arr, 1) - 2) = arr
    .Cells(30, 9) = arr(8) ' "I30"
    .Cells(30, 10) = arr(9) ' "J30"
End With
End Sub
[/vba]
Если правильно Вас понял конечно.
К сообщению приложен файл: _090123.xlsb (156.5 Kb)
 
Ответить
Сообщениеvitek73, здравствуйте! Попробуйте код:
[vba]
Код
Sub ВСЁ2023()
'вся статистика
' работает с любого листа
Dim arr() As Variant, j As Long, rng As Range, i As Range
With Worksheets(2)
    ' объеденяем диапазоны листа 2 для загрузки в массив
    Set rng = Application.Union(.[A30:G30], .[I30], .[J30])
    j = 1 ' счетчик массива
    ' загрузка диапазона rng в массив arr
    For Each i In rng
       ReDim Preserve arr(1 To j)
       arr(j) = i.Value
       j = j + 1
    Next i
End With
    
With Worksheets(3)
    ' вставляем 30 строку на лист 3
    .Rows(30).EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 'вставляем 30ю строку
    ' вставляем значения из массива на 3 лист в 30 строку
    .Cells(30, 1).Resize(1, UBound(arr, 1) - 2) = arr
    .Cells(30, 9) = arr(8) ' "I30"
    .Cells(30, 10) = arr(9) ' "J30"
End With
End Sub
[/vba]
Если правильно Вас понял конечно.

Автор - jun
Дата добавления - 09.01.2023 в 17:07
  • Страница 1 из 1
  • 1
Поиск:

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