Вывод отчета в Excel

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

pashulka
Сообщения: 831
Зарегистрирован: 24 ноя 2004, 03:46
Контактная информация:

И что ... телепатия стала реальностью ? и теперь все могут знать какие именно данные располагаются в Ваших таблицах и combobox'ах ?

Или выкладывайте пример, в виде .xls файла или сделайте первоначальный код более понятным для начинающего и попытайтесь разобраться самостоятельно :

Код: Выделить всё

Private Sub CommandButton1_Click()
    Dim wsh As Worksheet, strMonthName$, strFamilyName$, lngRow1&, lngRow2&
    
    strMonthName = ComboBox1.Value
    strFamilyName = ComboBox2.Value
    
    'Application.ScreenUpdating = False
    
    Set wsh = Worksheets.Add
    wsh.Name = strMonthName & Format(Now(), " dd/mm/yy hh.nn.ss")
    'Имя листа не должно превышать 31 символа
    
    With Worksheets(strMonthName)
         .Rows(1).Copy wsh.Cells(1, "A"): lngRow2 = 2
        
         For lngRow1 = 2 To .Cells(.Rows.Count, "A").End(xlUp).Row
             If CStr(.Cells(lngRow1, "J")) = strFamilyName Then
                .Rows(lngRow1).Copy wsh.Cells(lngRow2, "A"): lngRow2 = lngRow2 + 1
             End If
         Next
    End With
    
    'Application.ScreenUpdating = True
End Sub
Настя Белова
Сообщения: 31
Зарегистрирован: 28 мар 2014, 13:17

Просто файл объемный.весит много.не могу его сюда прикрепить
Настя Белова
Сообщения: 31
Зарегистрирован: 28 мар 2014, 13:17

и всё равно копирует шапку
pashulka
Сообщения: 831
Зарегистрирован: 24 ноя 2004, 03:46
Контактная информация:

Настя Белова писал(а):Просто файл объемный.весит много.не могу его сюда прикрепить
А кто говорит, что нужно выкладывать весь файл целиком ? достаточно один месяц, например, март и 100 строк вполне достаточно.
Настя Белова писал(а):и всё равно копирует шапку
Т.е. Вы наконец-то разобрались с примером, внесли необходимые изменения и всё равно копирует шапку ...
Настя Белова
Сообщения: 31
Зарегистрирован: 28 мар 2014, 13:17

[ATTACH]1971[/ATTACH] посмотрите сами что не так
Вложения
Учет ввода док&#.zip
(61.59 КБ) 45 скачиваний
Настя Белова
Сообщения: 31
Зарегистрирован: 28 мар 2014, 13:17

Private Sub CommandButton1_Click()
Dim wsh As Worksheet, strMonthName$, strFamilyName$, lngRow1&, lngRow2&

strMonthName = ComboBox1.Value
strFamilyName = ComboBox2.Value

'Application.ScreenUpdating = False

Set wsh = Worksheets.Add
wsh.Name = strMonthName & Format(Now(), " dd/mm/yy hh.nn.ss")
'Èìÿ ëèñòà íå äîëæíî ïðåâûøàòü 31 ñèìâîëà

With Worksheets(strMonthName)
.Rows(1).Copy wsh.Cells(1, "A"): lngRow2 = 2

For lngRow1 = 2 To .Cells(.Rows.Count, "A").End(xlUp).Row
If CStr(.Cells(lngRow1, "I")) = strFamilyName Then

.Rows(lngRow1).Copy wsh.Cells(lngRow2, "A"): lngRow2 = lngRow2 + 1
End If
Next
End With

'Application.ScreenUpdating = True
End Sub
так сделала.и кажется вывело то что нужно.щас еще проверю
pashulka
Сообщения: 831
Зарегистрирован: 24 ноя 2004, 03:46
Контактная информация:

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

Код: Выделить всё

If Trim(CStr(.Cells(lngRow1, "I"))) = strFamilyName Then
Ответить