Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
1 / 1 / 0
Регистрация: 19.07.2011
Сообщений: 285

Удаление повторяющихся имён при помощи макроса

24.01.2012, 15:00. Показов 1362. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть шит там следующая ситуация
------А--------В----
1-----Артур----15000
2-----Артур----25000
3-----Артур----50000
4-----Павел----20000
5-----Павел----15000
Нужно убрать повторяюшиеся имена при помоши макроса чтобы получилось

------А--------В----
1-----Артур----15000
2--------------25000
3--------------50000
4-----Павел----20000
5--------------15000
Спасибо зараннее
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.01.2012, 15:00
Ответы с готовыми решениями:

Переключение клавиатуры при помощи макроса
Подскажите пожалуйста как при помощи макроса в Exel переключиться с русского на английйский и наоборот

Многочисленные условия ЕСЛИ при помощи макроса
Привет всем. Ничего здесь описывать не стал. Задачу подробно описал в прикреплённом файле. Всех светлых умов, Прошу помочь. Вот ссылка:...

Как удалить ячейку при помощи макроса в VBA?
Pomogite pojalujsta s macrosom. Kak mojno napisatj kod v VBE, chtoby macros naxodil pustye jajchejki i udaljal ix (t.e. v Excel-e pravym...

4
6 / 6 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
24.01.2012, 21:20
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
Option Explicit
Const COL_TESTGROUP = 2     'Column "B"
Const COL_TESTDUPLICATE = 1 'Column "A"
Const ROW_FIRSTGROUP = 1    'Row 1
 
Sub DeleteDuplicates()
' Deletes duplicate items within each group on the sheet
' A group is a collection of rows that are separated
' by one or more blank cells in column "A"
' Duplicates are determined by examining the
' contents of column "B"
Dim nGroupLastRow As Long
Dim rng As Range
 
  Set rng = Range(Cells(ROW_FIRSTGROUP, COL_TESTGROUP), _
                  Cells(ROW_FIRSTGROUP, COL_TESTGROUP))
  If Not IsEmpty(rng.Offset(1, 0)) Then
    nGroupLastRow = rng.Cells(1, 1).End(xlDown).Row
    Set rng = Range(Cells(ROW_FIRSTGROUP, COL_TESTGROUP), _
                    Cells(nGroupLastRow, COL_TESTGROUP))
  End If
 
  Call RemoveDups(rng.Offset(0, COL_TESTDUPLICATE - COL_TESTGROUP))
  While NextGroup(rng)
      Call RemoveDups(rng.Offset(0, COL_TESTDUPLICATE - COL_TESTGROUP))
  Wend
  
End Sub
 
Sub RemoveDups(AGroup As Range)
' AGroup is a single column range.
' Rows are deleted when the same value appears in multiple rows.
' The last (highest row number) instance is retained.
Dim nRow As Long
Dim r As Range
  If AGroup.Rows.Count > 1 Then
    Application.ScreenUpdating = False
    With AGroup
      For nRow = .Rows.Count To 2 Step -1
        Set r = Range(.Cells(1, 1), .Cells(nRow - 1, 1)).Find(.Cells(nRow).Value, _
                    .Cells(nRow - 1, 1), xlValues, xlWhole, xlByColumns, xlPrevious)
        If Not r Is Nothing Then
          '.Cells(nRow).EntireRow.Delete
            .Cells(nRow).Offset(COL_TESTDUPLICATE - 1, 0).Clear
        End If
      Next nRow
    End With
    Application.ScreenUpdating = True
  End If
End Sub
 
Private Function NextGroup(ByRef AGroup As Range) As Boolean
' Finds the "next" group below a given group
' A "Group" is a single column range.
' The "next" group starts with the first non-blank
' cell following all blank cells below the
' given range.
Dim nFirstRow As Long
Dim nGroupLastRow As Long
  With AGroup
    nFirstRow = .Cells(.Rows.Count, 1).End(xlDown).Row
  End With
  If nFirstRow >= 65536 Then
    Set AGroup = Nothing
  Else
    If IsEmpty(Cells(nFirstRow + 1, 1)) Then
      Set AGroup = Cells(nFirstRow, 1)
    Else
      nGroupLastRow = Cells(nFirstRow, 1).End(xlDown).Row
      Set AGroup = Range(Cells(nFirstRow, 1), _
                         Cells(nGroupLastRow, 1))
    End If
  End If
  If AGroup Is Nothing Then
    NextGroup = False
  Else
    If IsEmpty(AGroup.Cells(1, 1)) Then
      NextGroup = False
    Else
      NextGroup = True
    End If
  End If
End Function
0
Alex77
24.01.2012, 21:29
!!!!
rank1
25.01.2012, 11:07
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Sub kill_the_same()
 Dim h As New Scripting.Dictionary, c
  For Each c In Selection.Cells
   If h.Exists(Trim(c.Formula)) Then
    c.Formula = "---"
    Else
    h(Trim(c.Formula)) = 1
   End If
  Next c
 Set h = Nothing
End Sub
rank1
25.01.2012, 11:08
Самый красивый способ использовать хеш из scrrun.dll - в стиле Perl
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.01.2012, 11:08
Помогаю со студенческими работами здесь

Как при помощи макроса определить последнею строку в таблице
Доброго времени суток! У меня возникла проблема или вернее нехватка знаний непозволяет решить простую задачу :(, а времени в обрез, прошу...

Удаление макроса при сохранении .doc файла
Подскажите кто знает. У меня есть мой документ(.doc) с встроенной в него программой на vba. Сам документ довольно большой, а там еше...

Вычислить выражение и вывести результат при помощи макроса
Написать на Asembler NASM программу которая вычисляет: x = b * c + 36 (где b, c - произвольные целые числа, что инициализированы)....

Вычислить выражение и вывести результат при помощи макроса
Задали написать уравнение x=b*c+36 b,c-любые числа, что инициализированы, х-не инициализирована и ответ нужно вывести через макрос. ...

Каскадное удаление при помощи запрса
Здравствуйте, есть задача, удалить информация о абитуриенте, она находиться в четырех связанных таблицах: _User usrID FIO _Kard ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru