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

Вход

Регистрация

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

 

= Мир MS Excel/Вставка заполненных строк через одну - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Вставка заполненных строк через одну
aikyaira Дата: Четверг, 09.03.2017, 12:48 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Добрый день, уважаемые знатоки!
Подскажите, пожалуйста, решение проблемы:
Во вложенном файле есть лист с названием "НАРА"-это лист, который хотелось бы переделать, лист с названием "Лист 1"-это то, во что надо переделать. Теперь по порядку: строки без адреса дома, обозначенные жирным нужно скопировать над каждым домом, проблема в том, что эти строки разные по содержанию, т.к. дома разные по категорийности и где-то тариф один, где-то другой. Помогите пожалуйста! ВАриант копировать-вставить выделенные ячейки на лист-это слишком долго, там около тысячи домов :(
К сообщению приложен файл: ______01.12.201.rar (70.0 Kb) · 9369727.rar (60.7 Kb)
 
Ответить
СообщениеДобрый день, уважаемые знатоки!
Подскажите, пожалуйста, решение проблемы:
Во вложенном файле есть лист с названием "НАРА"-это лист, который хотелось бы переделать, лист с названием "Лист 1"-это то, во что надо переделать. Теперь по порядку: строки без адреса дома, обозначенные жирным нужно скопировать над каждым домом, проблема в том, что эти строки разные по содержанию, т.к. дома разные по категорийности и где-то тариф один, где-то другой. Помогите пожалуйста! ВАриант копировать-вставить выделенные ячейки на лист-это слишком долго, там около тысячи домов :(

Автор - aikyaira
Дата добавления - 09.03.2017 в 12:48
Perfect2You Дата: Четверг, 09.03.2017, 16:35 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 237
Репутация: 59 ±
Замечаний: 0% ±

Excel 2010
У Вас на листе Лист1 столбцов больше. Столбцы с D по N не имеют аналогов в исходной таблице. Откуда брать данные в эти столбцы?

Создал копию листа Лист1, он получил имя Лист1 (2). Программка написана для него.
Данные в столбцы D:N не вставляются.
Чтобы выходные данные выводились на лист с другим именем, присвойте нужное имя переменной Kuda.
У меня программка работала около 15 сек.
[vba]
Код
Sub chet()
Dim strOk1 As Long, strOk2 As Long, strTmp As Long, strIt As Long
Dim Iz As String, Kuda As String

    Iz = "НАРА"
    Kuda = "Лист1 (2)"
    strIt = Sheets(Iz).Cells(Sheets(Iz).Rows.Count, 4).End(xlUp).Row
    
    strOk2 = Sheets(Kuda).UsedRange.Rows.Count
    If strOk2 > 1 Then Sheets(Kuda).Rows("2:" & strOk2).Delete Shift:=xlUp

    Sheets(Kuda).Columns("D:N").Cut
    Sheets(Kuda).Columns("AD:AD").Insert Shift:=xlToRight
    
    strOk1 = 2
    strOk2 = 2
    
    Do
        If Len(Sheets(Iz).Cells(strOk1, 1)) Then
            Sheets(Iz).Range(Sheets(Iz).Cells(strTmp, 1), Sheets(Iz).Cells(strTmp, 28)).Copy Sheets(Kuda).Cells(strOk2, 1)
            Sheets(Iz).Range(Sheets(Iz).Cells(strOk1, 1), Sheets(Iz).Cells(strOk1, 28)).Copy Sheets(Kuda).Cells(strOk2 + 1, 1)
            strOk2 = strOk2 + 2
        Else
            If Len(Sheets(Iz).Cells(strOk1, 4)) Then
                strTmp = strOk1
            Else
                Sheets(Iz).Range(Sheets(Iz).Cells(strOk1, 1), Sheets(Iz).Cells(strOk1, 28)).Copy Sheets(Kuda).Cells(strOk2, 1)
                strOk2 = strOk2 + 1
            End If
            
        End If
        strOk1 = strOk1 + 1
        Application.StatusBar = "Обработано " & strOk1 & " из " & strIt
    Loop While Len(Sheets(Iz).Cells(strOk1, 4) & Sheets(Iz).Cells(strOk1 + 1, 4))
    
    Sheets(Kuda).Columns("S:AC").Cut
    Sheets(Kuda).Columns("D:D").Insert Shift:=xlToRight
    
    Application.StatusBar = False
    
End Sub
[/vba]


Сообщение отредактировал Perfect2You - Четверг, 09.03.2017, 19:45
 
Ответить
СообщениеУ Вас на листе Лист1 столбцов больше. Столбцы с D по N не имеют аналогов в исходной таблице. Откуда брать данные в эти столбцы?

Создал копию листа Лист1, он получил имя Лист1 (2). Программка написана для него.
Данные в столбцы D:N не вставляются.
Чтобы выходные данные выводились на лист с другим именем, присвойте нужное имя переменной Kuda.
У меня программка работала около 15 сек.
[vba]
Код
Sub chet()
Dim strOk1 As Long, strOk2 As Long, strTmp As Long, strIt As Long
Dim Iz As String, Kuda As String

    Iz = "НАРА"
    Kuda = "Лист1 (2)"
    strIt = Sheets(Iz).Cells(Sheets(Iz).Rows.Count, 4).End(xlUp).Row
    
    strOk2 = Sheets(Kuda).UsedRange.Rows.Count
    If strOk2 > 1 Then Sheets(Kuda).Rows("2:" & strOk2).Delete Shift:=xlUp

    Sheets(Kuda).Columns("D:N").Cut
    Sheets(Kuda).Columns("AD:AD").Insert Shift:=xlToRight
    
    strOk1 = 2
    strOk2 = 2
    
    Do
        If Len(Sheets(Iz).Cells(strOk1, 1)) Then
            Sheets(Iz).Range(Sheets(Iz).Cells(strTmp, 1), Sheets(Iz).Cells(strTmp, 28)).Copy Sheets(Kuda).Cells(strOk2, 1)
            Sheets(Iz).Range(Sheets(Iz).Cells(strOk1, 1), Sheets(Iz).Cells(strOk1, 28)).Copy Sheets(Kuda).Cells(strOk2 + 1, 1)
            strOk2 = strOk2 + 2
        Else
            If Len(Sheets(Iz).Cells(strOk1, 4)) Then
                strTmp = strOk1
            Else
                Sheets(Iz).Range(Sheets(Iz).Cells(strOk1, 1), Sheets(Iz).Cells(strOk1, 28)).Copy Sheets(Kuda).Cells(strOk2, 1)
                strOk2 = strOk2 + 1
            End If
            
        End If
        strOk1 = strOk1 + 1
        Application.StatusBar = "Обработано " & strOk1 & " из " & strIt
    Loop While Len(Sheets(Iz).Cells(strOk1, 4) & Sheets(Iz).Cells(strOk1 + 1, 4))
    
    Sheets(Kuda).Columns("S:AC").Cut
    Sheets(Kuda).Columns("D:D").Insert Shift:=xlToRight
    
    Application.StatusBar = False
    
End Sub
[/vba]

Автор - Perfect2You
Дата добавления - 09.03.2017 в 16:35
Wasilich Дата: Четверг, 09.03.2017, 23:01 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
Еще вариант.
К сообщению приложен файл: -__.xls (61.5 Kb)
 
Ответить
СообщениеЕще вариант.

Автор - Wasilich
Дата добавления - 09.03.2017 в 23:01
  • Страница 1 из 1
  • 1
Поиск:

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