|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.07.2011, 16:55 | #1 |
Регистрация: 17.06.2011
Сообщений: 5
|
Сравнение определенных значений в строках
Sub MyWork_select()
i = 6: j = 2: n = 6: k = 2: f = 1 ' f это сдвиг по столбцам для присвоения значений p = 6 'июнь счетчик до 12го месяца считать t = 6 Do 1: lLastRow5 = Cells(Rows.Count, 2).End(xlUp).Row Do While n <> lLastRow5 - 2 ' до 18 ячейки Windows("Окно1").Activate Sheets("ВКЛАДКА1").Activate ' если сторока пустая то оставляем постой ячейку (n, k+f) If Cells(n, k).Value = "" Then Cells(n, k + f).Value = "": n = n + 1: GoTo 1 End If s = Cells(n, k).Value dlina = Len(s) Debug.Print s, dlina stat1 = " ": stat2 = " ": stat3 = " ": stat4 = " " ' здесь выделяю статьи. В каждой ячейке их разное количество от 1 до 4-х. поэтому в stаrt1-4 я присваиваю эти значения Select Case dlina Case 14 stat1 = Cells(n, k).Value Debug.Print stat1 Case 14 To 35 stat1 = Left(s, 14) stat4 = Right(s, 14) Debug.Print stat1, stat4 Case Is > 35 stat1 = Left(s, 14) Debug.Print stat1 Z = 21 stat2 = Mid(s, Z, 14) Debug.Print stat2 If Z <> "" Then Z = Z + 20 stat3 = Mid(s, Z, 14) Debug.Print stat3, Len(stat3) stat4 = Right(s, 14) Debug.Print stat4 End If End Select Windows("Окно2").Activate Sheets("ВКЛАДКА1").Activate lLastRow = Cells(Rows.Count, 1).End(xlUp).Row Debug.Print lLastRow Do While i <> lLastRow + 1 Debug.Print i, j, p s1 = Cells(i, j).Value t1 = Cells(6, j + p).Value Debug.Print s1, t1 m2 = Left(s1, 14) 'это статья с первой вкладки другой таблицы, с ней будем сравнивать те статьи Debug.Print m2, Len(m2) vixod = False Call Stati(bk1, bk2, bk3, bk4, m2, vixod) If vixod = True Then Exit Do i = i + 1 Loop Windows("Окно2").Activate Sheets("ВКЛАДКА2").Activate lLastRow = Cells(Rows.Count, 1).End(xlUp).Row Debug.Print lLastRow i = 6 Do While i <> lLastRow + 1 Debug.Print i, j s1 = Cells(i, j).Value t2 = Cells(6, j + p).Value Debug.Print s1 m2 = Left(s1, 14) Debug.Print m2 SPvixod = False Call Stati(sp1, sp2, sp3, sp4, m2, SPvixod) If SPvixod = True Then Exit Do i = i + 1 Loop Windows("Окно2").Activate Sheets("ВКЛАДКА3").Activate lLastRow = Cells(Rows.Count, 1).End(xlUp).Row Debug.Print lLastRow i = 6 Do While i <> lLastRow + 1 Debug.Print i, j s1 = Cells(i, j).Value t3 = Cells(6, j + p).Value Debug.Print s1 m2 = Left(s1, 14) Debug.Print m2 PBvixod = False Call Stati(pb1, pb2, pb3, pb4, m2, PBvixod) If PBvixod = True Then Exit Do i = i + 1 If n = 7 Then d = bk1 - bk4 + sp1 - sp4 + pb1 - pb4 Debug.Print d Else d = bk1 + bk2 + bk3 + bk4 + sp1 + sp2 + sp3 + sp4 + pb1 + pb2 + pb3 + pb4 End If Debug.Print d Windows("Окно1").Activate Sheets("ВКЛАДКА1").Activate Cells(n, k + f).Value = d Debug.Print Cells(n, k + f).Value Sum = sum1 + d Debug.Print Sum i = i + 1 Exit Do i = i + 1 Loop Debug.Print n, k n = n + 1 Loop Loop While p <> 13 End Sub Sub Stati(Mystat1 As Long, Mystat2 As Long, Mystat3 As Long, Mystat4 As Long, Mym2 As String, MYvixod As Boolean) On Error GoTo Handler Debug.Print stat1, stat4, m2 If stat1 = m2 Then Mystat1 = Cells(i, j + p).Value If stat2 = m2 Then Mystat2 = Cells(i, j + p).Value If stat3 = m2 Then Mystat3 = Cells(i, j + p).Value If stat4 = m2 Then Mystat4 = Cells(i, j + p).Value MYvixod = True End If Exit Sub Handler: MsgBox "Ошибка" End Sub Скажите какие ошибки в коде чтобы я могла его отладить. |
01.07.2011, 16:56 | #2 |
Регистрация: 17.06.2011
Сообщений: 5
|
Добрый день!
Подскажите пожалуйста как обращаться правильно к процедуре. Выполняется процедура MyWork_select и в ней я обращаюсь к процедуре Stati. Но наверно как то неправильно передаю значения. Если возможно не вникая в программу указать мне мои ошибки. Действия которые я хочу сделать указаны в самой процедуре. Сравниваем статьи вот например содержимое одной ячейки: 90.01.25.01.00 плюс 90.01.25.02.00 плюс 90.01.25.03.00 плюс 90.01.25.04.00 вот другой:90.01.13.00.00 без 90.01.13.06.00 то есть я беру только статьи и сравниваю их сос татьями в другой таблице и при совпадении выдаю значение в необходимой ячейке Процедура указана выше |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сравнение значений в 2х столбцах и удаление лишних значений.. | Tyr | Microsoft Office Excel | 2 | 16.12.2010 18:19 |
Сравнение значений в 2 массивах | Verano naranjo | Microsoft Office Excel | 10 | 01.12.2010 11:49 |
Автоматическое вычитание при вводе определенных значений | DIMONRUS | Microsoft Office Excel | 11 | 17.06.2010 20:06 |
Перенос данных с листов при совпадении определенных значений ячеек | Тантана | Microsoft Office Excel | 11 | 21.05.2010 14:06 |
Поиск одинаковых значений в стобце, возврат суммы чисел из другого столбца в найденных строках! | Kup | Microsoft Office Excel | 2 | 25.03.2010 10:15 |