Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Объединение ячеек и суммирования - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Объединение ячеек и суммирования (Макросы/Sub)
Объединение ячеек и суммирования
xXx Дата: Пятница, 03.06.2022, 11:56 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

привет друзья

помогите со скриптом VBA

есть документ excel с отчётом

если в столбце B у нас одинаковые имена то в столбце F надо объединить и суммировать также столбец G

надо написать макрос чтобы при сформировании отчета автоматом уже выводило

спасибо
К сообщению приложен файл: 11-1.xlsx (13.8 Kb)
 
Ответить
Сообщениепривет друзья

помогите со скриптом VBA

есть документ excel с отчётом

если в столбце B у нас одинаковые имена то в столбце F надо объединить и суммировать также столбец G

надо написать макрос чтобы при сформировании отчета автоматом уже выводило

спасибо

Автор - xXx
Дата добавления - 03.06.2022 в 11:56
jun Дата: Пятница, 03.06.2022, 14:03 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 42 ±
Замечаний: 0% ±

xXx, приветствую!
Можно например так:
[vba]
Код
Sub MergeCellsWithConditions()
    Dim i, arr, temp, temp_, r As Long, dC As Long, lr As Long
    r = 9: lr = Cells(r, 3).End(xlDown).Row: arr = Range(Cells(r, 1), Cells(lr, 7))
    Application.DisplayAlerts = False
    For i = LBound(arr, 1) To UBound(arr, 1)
        If i = UBound(arr, 1) Then Exit For
        If arr(i, 2) = arr(i + 1, 2) Then
            temp = arr(i + 1, 7) + arr(i, 7): Range(Cells(r, 7), Cells(r + 1, 7)).Merge: Range(Cells(r, 7), Cells(r + 1, 7)) = temp
            temp_ = arr(i + 1, 6) + arr(i, 6): Range(Cells(r, 6), Cells(r + 1, 6)).Merge: Range(Cells(r, 6), Cells(r + 1, 6)) = temp_
            i = i + 1: r = r + 2
        Else
            r = r + 1
        End If
    Next i
    Application.DisplayAlerts = True
End Sub
[/vba]
Запускать по Alt + F8
К сообщению приложен файл: 11-1.xlsb (20.2 Kb)
 
Ответить
СообщениеxXx, приветствую!
Можно например так:
[vba]
Код
Sub MergeCellsWithConditions()
    Dim i, arr, temp, temp_, r As Long, dC As Long, lr As Long
    r = 9: lr = Cells(r, 3).End(xlDown).Row: arr = Range(Cells(r, 1), Cells(lr, 7))
    Application.DisplayAlerts = False
    For i = LBound(arr, 1) To UBound(arr, 1)
        If i = UBound(arr, 1) Then Exit For
        If arr(i, 2) = arr(i + 1, 2) Then
            temp = arr(i + 1, 7) + arr(i, 7): Range(Cells(r, 7), Cells(r + 1, 7)).Merge: Range(Cells(r, 7), Cells(r + 1, 7)) = temp
            temp_ = arr(i + 1, 6) + arr(i, 6): Range(Cells(r, 6), Cells(r + 1, 6)).Merge: Range(Cells(r, 6), Cells(r + 1, 6)) = temp_
            i = i + 1: r = r + 2
        Else
            r = r + 1
        End If
    Next i
    Application.DisplayAlerts = True
End Sub
[/vba]
Запускать по Alt + F8

Автор - jun
Дата добавления - 03.06.2022 в 14:03
xXx Дата: Понедельник, 06.06.2022, 06:44 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

спасибо
 
Ответить
Сообщениеспасибо

Автор - xXx
Дата добавления - 06.06.2022 в 06:44
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Объединение ячеек и суммирования (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!