• Главная
  • Исходники Delphi
  • Справочники Delphi
  • Книги Delphi
  • Основы Delphi
  • библиотека Delphi исходников
  • Форум
  • Блоги

Последние записи

  • Прозрачность тайлсета в TPNGImage
  • Как сделать VBA макрос в excel
  • Поиск по столбцу 1-ого не нулевого значения (формулой в Microsoft Office Excel)
  • Простановка единиц в ячейки под объектами (Microsoft Office Excel)
  • Расчет затраченного времени между определенным рабочим временем (формулой в Microsoft Office Excel)
  • Мигающий экран на Assembler
  • VBA-макрос по копированию 10 строчек в выбранном диапазоне в Microsoft Office Excel
  • Копирование только нужного диапазона в Microsoft Office Excel
  • Перенос диапазона стоки в Microsoft Office Excel на другой лист по условию
  • Мелодия в Pascal.ABC.Net с помощью System.Console.Beep — задержка воспроизведения звука

made in programmersforum 6

programmersforum6

  • .NET
  • ASP.NET
  • assembler
  • Basic
  • c/c++
  • CMS
  • Delphi
  • HTML
  • iPhone
  • Java
  • JavaScript
  • Linux
  • Pascal
  • Perl
  • Photoshop
  • php
  • Python
  • Ruby
  • SEO
  • sql
  • VBA
  • Win Api
  • Windows
  • XML и XSLT
  • Администрирование ОС
  • Апгрейды
  • Архив
  • Безопасность
  • Блоги
  • Веб-аналитика
  • Железо
  • Журнал
  • Заметки
  • Имейдж
  • Интервью
  • Исходники
  • Новости
  • Общалка
  • Операционные системы
  • Пост-обзор
  • Профлитература
  • Рассылка
  • Реклама
  • си шарп
  • Советы
  • Софт
  • Статьи
  • Топик-обзор
  • Файлы








24th
Янв

Копирование только нужного диапазона в Microsoft Office Excel

Posted by obzor under VBA

На листе «Лист1» находиться сводная таблица с наименованием товара. Необходимо скопировать каждый товар на отдельный соответствующий лист. Проблема заключатся в том, что строк в каждом товаре будет всегда разное. (например яблок может быть 50 строк, груш 100 и т.д.)
Вложения
Тип файла: xlsx Книга1.xlsx (10.6 Кб)

Aleksandr H.

Код:

Function WorksheetExists(shtName As String, Optional wb As Workbook) As Boolean
    Dim sht As Worksheet

     If wb Is Nothing Then Set wb = ThisWorkbook
     On Error Resume Next
     Set sht = wb.Sheets(shtName)
     On Error GoTo 0
     WorksheetExists = Not sht Is Nothing
 End Function


Sub GoBitch()
    Dim i As Integer
    Dim r As Integer
    Dim sh As Worksheet
    Set sh = Nothing
    
    For i = 3 To 18
        If Cells(i, "A") = vbNullString Then Exit For
        If Cells(i, "A").MergeCells Then
          if not WorksheetExists(cells(i,"A")) then
        Set sh = Sheets.Add(After:=Sheets(Sheets.Count))
        sh.Name = Cells(i, "A")
          else
              set sh = sheets(cells(i,"A").value)
          end if
         r = sh.cells(sh.rows.count,"A").end(xlup).row + 1
        Else
            If Not sh Is Nothing Then
                sh.Cells(r, "A") = Cells(i, "A")
                sh.Cells(r, "B") = Cells(i, "B")
                sh.Cells(r, "C") = Cells(i, "C")
                r = r + 1
            End If
        End If
    Next i
End Sub

тема на форуме

Случайные статьи

  • Не удается отправить русские символы в POST запросе через IdHttp
  • Как найти все подпапки скрытой папки.
  • Получить разницу между датами
  • УРОК 38 ПОЛИМОРФИЗМ
  • Как бросить курить и не начать курить снова
  • Печать текстового файла
  • Как скачать файл?
  • Изменение внешнего вида параметра .body
  • Delphi+MySQL. Какой компонент можно использовать?
  • Освободить память после потока








© Copyright "Клуб программистов" – материалы по Delphi и С++. Создание и продвижние сайта - Веб-сателлит.