Избавление от повторяющихся столбцов и строк (Excel) - VB
Формулировка задачи:
Люди добрые, помогите. Руководством поставлена задача из неприличной базы данных в Екселе, содержащей повторяющиеся поля (в частности названия цехов завода) и повторяющиеся записи (коды статей расходования денежных средств, ну и сами суммы, конечно), сделать приличную, т.е. которая не содержит повторений.
Функция {сумм(если(и т.д.))} не работает, или вернее работает некорректно, потому что необходимо суммировать не по одной строке или полю, а по массиву. По-моему, алгоритм прост до невозможности вроде того, что пока есть совпадения в базе данных то давай ищи их, суммируй и вставляй в заданное совпадение в другом листе, как закончились совпадения, так и циклу конец. Знал бы я синтаксис вижуал бейсик, сам бы написал, но к сожалению я его не знаю. Будьте добры помогите такую пользовательскую функцию написать, буду очень признателен.
Решение задачи: «Избавление от повторяющихся столбцов и строк (Excel)»
textual
Листинг программы
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim StartR As Long, R As Long, StartC As Integer, C As Integer Cancel = True StartR = 2 'объединяем строки Do While Cells(StartR, 2) <> '' R = StartR + 1 Do While Cells(R, 2) <> '' If Cells(R, 2) = Cells(StartR, 2) Then C = 3 Do While Cells(1, C) <> '' Cells(StartR, C) = Cells(StartR, C) + Cells(R, C) C = C + 1 Loop Rows(R).Delete Else R = R + 1 End If Loop StartR = StartR + 1 Loop StartC = 3 'объединяем столбцы Do While Cells(1, StartC) <> '' C = StartC + 1 Do While Cells(1, C) <> '' If Cells(1, C) = Cells(1, StartC) Then R = 2 Do While Cells(R, 2) <> '' Cells(R, StartC) = Cells(R, StartC) + Cells(R, C) R = R + 1 Loop Columns(C).Delete Else C = C + 1 End If Loop StartC = StartC + 1 Loop End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д