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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.08.2025, 11:19   #1
Rita2018
 
Регистрация: 07.12.2022
Сообщений: 9
По умолчанию Дубль строки таблицы

Добрый день!
Помогите пожалуйста с таблицей, мне необходимо(как в примере) в таблицу I1:K9 чтоб попадали данные из заполненной таблицы A1:D5 - при этом чтоб ячейки из столбца A,B дублировались, а данные из столбцов C, D были по строчкам соответственно
Заранее спасибо!!!
Вложения
Тип файла: xlsx тест.xlsx (9.5 Кб, 6 просмотров)
Rita2018 вне форума Ответить с цитированием
Старый 26.08.2025, 01:07   #2
Elixi
Форумчанин
 
Регистрация: 10.05.2019
Сообщений: 174
По умолчанию

Rita2018, для вашего файла
Код:
Sub Rita2018_Test()
    Dim Rw&, RwF&, RwL&, i&
    
    RwF = 2
    RwL = Cells(Rows.Count, 1).End(xlUp).Row
    ReDim M((RwL - 1) * 2, 2)

    M(0, 0) = Cells(1, 1)
    M(0, 1) = Cells(1, 2)
    M(0, 2) = Mid(Cells(1, 3), 1, Len(Cells(1, 3)) - 1)
        
    For Rw = RwF To RwL
        i = i + 1
        M(i, 0) = Cells(Rw, 1)
        M(i, 1) = Cells(Rw, 2)
        M(i, 2) = Cells(Rw, 3)
        i = i + 1
        M(i, 0) = M(i - 1, 0)
        M(i, 1) = M(i - 1, 1)
        M(i, 2) = Cells(Rw, 4)
    Next

    Cells(12, 9).Resize(UBound(M, 1) - LBound(M, 1) + 1, _
                        UBound(M, 2) - LBound(M, 2) + 1) = M
End Sub
Elixi вне форума Ответить с цитированием
Старый 01.09.2025, 11:53   #3
Rita2018
 
Регистрация: 07.12.2022
Сообщений: 9
Хорошо

Elixi, спасибо большое!!!
А ещё подскажите, а если мне нужна таблица(результат) на новом листе с ячейки A1?
Set ShP=Sheets(2)
......

ShP.Cells(12, 9).Resize(UBound(M, 1) - LBound(M, 1) + 1, _
UBound(M, 2) - LBound(M, 2) + 1) = M

Последний раз редактировалось Rita2018; 01.09.2025 в 12:51.
Rita2018 вне форума Ответить с цитированием
Старый Вчера, 21:26   #4
Elixi
Форумчанин
 
Регистрация: 10.05.2019
Сообщений: 174
По умолчанию

да, Rita2018, если лист существует, можно и так
а если листа нет или, может быть, на втором листе важные данные
Код:
    ' ... можно лист добавить
    Sheets.Add after:=Sheets(ActiveSheet.Index)
    ' ... наименовать, например так
    ActiveSheet.Name = "MySheet" _
                        & "_" & Format(Date, "yyyy-mm-dd") _
                        & "_" & Format(Time, "hh-mm-ss")
    Cells(1, 1).Resize(UBound(M, 1) - LBound(M, 1) + 1, _
                        UBound(M, 2) - LBound(M, 2) + 1) = M
    ' ... и после записи данных поправить ширину столбцов
    Columns.AutoFit
Elixi вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция SHGetSpecialFolderPath дубль 2 Sambon_ Win Api 6 29.08.2012 20:58
С чего начать: дубль flovie Свободное общение 25 04.03.2012 15:30
Дубль Гис плагин ildusfm Фриланс 1 06.12.2009 12:06