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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.07.2013, 15:53   #1
S.A.Nex
 
Регистрация: 29.06.2013
Сообщений: 7
По умолчанию В 10 столбцах рабочего листа находится...

В первых 10 столбцах рабочего листа находятся сведения о сотрудниках фирмы. Причем в первых трех столбцах рабочего листа записаны: фамилия, имя и отчество. Необходимо написать программу, делающую выборку сотрудников: телефон начинается с трех цифр 962, а зарплата превышает среднее значение зарплаты всех сотрудников. Имена полей и их содержимое придумать самостоятельно. Полученную выборку вывести на второй рабочий лист.

Помогите сделать по новой или просто помогите под редактировать код.
1.вот первый в котором надо написать вывод на второй лист.Я пробовал у меня он всегда ошибку выдавал. Поэтому я опираясь на код этой программы написал свой.(См. ниже).Он у меня тоже выдавал ошибку.
Код:
Type Spisok
    lastName As String
    firstName As String
    papaName As String
    nomer As String
    dohod As Double

End Type

Sub лаба7()
    Dim sp() As Spisok, i, j, n As Integer, paralast As Integer, Avg As Double    ' описываем переменные
    Worksheets("Лист2").Range("a2:j100").Clear
    With Worksheets("Лист1")
        n = .Cells(.Rows.Count, 1).End(xlUp).Row
        ReDim sp(0)    'перераспределяет размер массива
        paralast = -1
        Avg = Application.WorksheetFunction.Average(.Range("E2:E" & n))
        For i = 2 To n    'через цикл состовляем список
            If Cells(i, 4).Text Like "962*" And .Cells(i, 5) > Avg Then
                paralast = paralast + 1
                ReDim Preserve sp(paralast)
                sp(paralast).lastName = .Cells(i, 1)
                sp(paralast).firstName = .Cells(i, 2)
                sp(paralast).papaName = .Cells(i, 3)
                sp(paralast).nomer = .Cells(i, 4)
                sp(paralast).dohod = .Cells(i, 5)
            End If
        Next i
    End With
End Sub
2 Вот мой код.
Код:
Type Spisok 'создаем список
    lastName As String 'строковый тип данных,размер строкидо 255
    firstName As String '
    papaName As String '
    nomer As String '
    dohod As Double 'действительные числа

End Type

Sub лаба7()
    Dim sp() As Spisok, i, j, n As Integer, Avg As Double     ' описываем переменные
   Sheets("Лист2").Select
        Range("a2:j10").Clear
    Sheets("Лист1").Select
    While (Cells(n + 1, 4) <> "")
     n = Cells(Rows.Count, 1).End(xlUp).Row 'формула
        ReDim sp(0)    'перераспределяет размер массива
           
    Wend

    For i = 1 To n
        sp(i).lastName = Cells(i + 1, 1)
        sp(i).firstName = Cells(i + 1, 2)
        sp(i).papaName = Cells(i + 1, 3)
        sp(i).nomer = Cells(i + 1, 4)
        sp(i).dohod = Cells(i + 1, 5)
    Next i
    
       
       
        Avg = Application.WorksheetFunction.Average(Range("E2:E" & n))
        For i = 2 To n    'через цикл состовляем список
            If Cells(i, 4).Text Like "962*" And Cells(i, 5) > Avg Then 'задаем условие
                
        Sheets("Лист2").Select
                
                sp(paralast).lastName = Cells(i, 1)
                sp(paralast).firstName = Cells(i, 2)
                sp(paralast).papaName = Cells(i, 3)
                sp(paralast).nomer = Cells(i, 4)
                sp(paralast).dohod = Cells(i, 5)
            End If
        Next i
End Sub

Последний раз редактировалось S.A.Nex; 04.07.2013 в 01:13. Причина: Исправление ошибок в тексте.
S.A.Nex вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В первых 10 столбцах рабочего листа находятся...... S.A.Nex Microsoft Office Excel 7 05.07.2013 16:59
Вывод на юзерформу изображения (содержания) рабочего листа strannick Microsoft Office Excel 2 12.10.2012 09:29
Заполнение массива из ячеек рабочего листа ofenod Microsoft Office Excel 2 29.04.2011 01:33
подаскажите пожалуйста как сделать программно скрин рабочего листа? ShamanK Microsoft Office Excel 4 24.11.2009 19:26
Использование события рабочего листа Worksheet_Change kovalevskivf Microsoft Office Excel 2 15.11.2009 12:51