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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.09.2020, 23:24   #21
Elixi
Форумчанин
 
Регистрация: 10.05.2019
Сообщений: 163
По умолчанию

если сделать поправкой ваших макросов это надеюсь будет работать:
( но возникла небольшая сложность с "растягиванием" и чтобы оно работало,
как думаю должно работать, я его всунул в процедуру Sub остальныеУровни()... )

Код:
Sub ИТОГ()
    Call убратьЗнаки
    Call остальныеУровни
End Sub


Sub убратьЗнаки()
  Dim r As Long, v As String, i As Long
  For i = 11 To Cells(Rows.Count, 1).End(xlUp).Row
    v = CStr(Cells(i, 1).Value)
    If v <> "" Then
        Cells(i, 4).NumberFormat = "@"
        Cells(i, 4).Value = Left(v, Len(v) - 1)
    End If
    Next
End Sub


Sub остальныеУровни()
Dim i As Long, i2 As Long
Dim TK As Integer
Dim PP As Boolean
PP = False
    i2 = Sheets(2).Cells(Rows.Count, 2).End(xlUp).Row
    For i = 11 To Sheets(1).Cells(Rows.Count, 4).End(xlUp).Row
        TK = Len(Sheets(1).Cells(i, 4).Value) - Len(Replace(Sheets(1).Cells(i, 4).Value, ".", ""))
        Select Case TK
            Case Is = 1
                Sheets(2).Cells(i2 - 4 + i - 6, 2) = Sheets(1).Cells(i, 2).Value
            Case Is = 2
                Sheets(2).Cells(i2 - 4 + i - 6, 3) = Sheets(1).Cells(i, 2).Value
            Case Is = 3
                Sheets(2).Cells(i2 - 4 + i - 6, 4) = Sheets(1).Cells(i, 2).Value
            Case Is = 4
                Sheets(2).Cells(i2 - 4 + i - 6, 5) = Sheets(1).Cells(i, 2).Value
            Case Is = 5
                Sheets(2).Cells(i2 - 4 + i - 6, 6) = Sheets(1).Cells(i, 2).Value
            Case Is = 6
                Sheets(2).Cells(i2 - 4 + i - 6, 7) = Sheets(1).Cells(i, 2).Value
        End Select
        ' растягивание
        If PP Then
            If Sheets(2).Cells(i2 - 4 + i - 6, 2) = "" Then
                Sheets(2).Cells(i2 - 4 + i - 6, 2) = Sheets(2).Cells(i2 - 4 + i - 6 - 1, 2)
            End If
            If Sheets(2).Cells(i2 - 4 + i - 6, 3) = "" Then
                If Sheets(2).Cells(i2 - 4 + i - 6, 2) = Sheets(2).Cells(i2 - 4 + i - 6 - 1, 2) Then
                    Sheets(2).Cells(i2 - 4 + i - 6, 3) = Sheets(2).Cells(i2 - 4 + i - 6 - 1, 3)
                End If
            End If
        End If
        PP = True
    Next i
End Sub
Elixi вне форума Ответить с цитированием
Старый 11.09.2020, 00:05   #22
lilpop
Пользователь
 
Регистрация: 06.09.2020
Сообщений: 17
По умолчанию

Elixi,
спасибо Вам огромное! все работает идеально!
lilpop вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Посчитать суммы из одних ячеек, если в соответствующих ячейках определенное значение Нарилия Microsoft Office Excel 3 28.02.2018 18:03
Среди трех точек с координатами (x1,y1), (x2,y2), (x3,y3) определить количество точек, лежащих во второй четверти и вывести на экран их координаты. Viktoria_ Паскаль, Turbo Pascal, PascalABC.NET 3 20.02.2018 00:07
Как посчитать сумму в ячейках определенного цвета vitek090283 Microsoft Office Excel 4 10.10.2017 02:14
Задаnm n точек. Найти m=3,4... точек и построить на них m-угольник: количество точек , лежащих внутри и вне его мин. различается L.Rain Помощь студентам 0 11.12.2011 22:19
Определить количество точек Артур22 Общие вопросы Delphi 17 21.02.2011 11:09