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

Разделитель клиентов в листе Excel

06.09.2015, 17:43. Показов 1764. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, программка которую мы собрали тут на форуме работает отлично (сканер штрих кодов) Сканирование штрих кодов средствами Excel но понадобилась еще одна функция ну или.. можно совсем другую программку создать такую которая будет разделять список фамилий тоесть , пример исходный файл:

Петров
Петров
Петров
Тарасов
Тарасов
Олигарх
Олигарх
Олигарх
Олигарх

Отформатированный должен бы выглядеть так( где рисочка ето пустая строка ячеек):

Петров
Петров
Петров
__________________
Тарасов
Тарасов
__________________
Олигарх
Олигарх
Олигарх
Олигарх

как проверять сходство данных в ячейке и если в ячейке с данные отличаються перед ней ставить пустую?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.09.2015, 17:43
Ответы с готовыми решениями:

Разделитель разрядов при экспорте в excel
Доброго времени суток, уважаемые форумчане. Возник нубский вопрос: как установить "разделитель групп разрядов" у числовой ячейки...

Хранение файлов и файловый менеджер в файле(листе) Excel, Бинарное хранение данных в CustomProperty листа Excel
Всем привет! Хочу поделится наработками, которые получились в процессе реализации своих задач. Отдельная благодарность! Андрей VG, за...

Excel: разбиение текста ячейки на несколько, если разделитель - цифры
Собственно вопрос в следующем: имеется ячейка с таким, примерно, текстом "1. ххх. 2. ууу. 3. zzz. ... 15. aaa". Мне требуется...

10
 Аватар для kalbasiatka
416 / 263 / 83
Регистрация: 27.10.2012
Сообщений: 861
06.09.2015, 18:15
Лучший ответ Сообщение было отмечено bigggi как решение

Решение

Visual Basic
1
2
3
4
5
6
Sub uuu()
    Dim i&
    For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
        If Cells(i, 1) <> Cells(i - 1, 1) Then Rows(i).Insert
    Next
End Sub
1
0 / 0 / 0
Регистрация: 25.10.2014
Сообщений: 13
10.09.2015, 17:01  [ТС]
Спасибо, все отлично.
Подскажите еще как менять размер (высоту вставляемых ячеек)
я пописываю так
PureBasic
1
Rows(i).Height = 25
но выбивает ошибку
"Нельзя установить свойство Height класса Range
0
 Аватар для kalbasiatka
416 / 263 / 83
Регистрация: 27.10.2012
Сообщений: 861
10.09.2015, 17:58
Visual Basic
1
Rows(i).RowHeight = 25
Используйте макрорекордер чтобы увидеть синтаксис языка.
1
0 / 0 / 0
Регистрация: 25.10.2014
Сообщений: 13
15.09.2015, 15: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
Option Explicit   
 
     Dim fileToOpen, tt, Name, Folder As Variant, b, f As Boolean, txt As String
 
Private Sub CommandButton1_Click()
   
 
          fileToOpen = Application.GetOpenFilename _
          (" *.xlsx (*.xlsx), *.xlsx,*.xls (*.xls), *.xls")
 
      tt = InStrRev(fileToOpen, "\")
    Name = Mid(fileToOpen, tt + 1)
 
            If fileToOpen <> False Then
               Workbooks.Open fileToOpen
              CommandButton1.Enabled = False
     End If
 
End Sub
 
 
 
Private Sub CommandButton2_Click()
 
 
    Dim i&
    For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
 
        If Cells(i, 1) <> Cells(i - 1, 1) Then
        
        Rows(i).Insert
        Rows(i).Interior.Color = 8421504 
        Rows(i).RowHeight = 10
  End If
    Next
 
 End Sub
 
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
 
If fileToOpen <> False Then
Workbooks(Name).Save
 
     End If
 
End Sub
Может кому понадобиться)
у меня еще вопросики будет так что не прощаюсь))

Добавлено через 53 минуты
Пробую сделать копирование похожих фамилий в другой лист, пытался применить часть кода где разделитель проставляется но не получаеться почему то копирует хаотически(
тоесть вот так :

мы разделители уже поставили отделив похожие фамилии от друг от дружки.
а теперь делаем тоже только с столбцом "В" ищем похожие (города) и найдя их :
Киев
Киев
Киев
Киев
Харьков
Харьков
Львов

берем все четыре Киева и перемещаем в новый лист, цикл продолжается находим два Харькова , перемещаем в третий лист,находим львов перемещаем в четвертый лист. Тоесть отсеиваем по городах.
0
0 / 0 / 0
Регистрация: 25.10.2014
Сообщений: 13
18.09.2015, 10:37  [ТС]
подскажите пожалуйста)
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
18.09.2015, 11:04
Думаю ответов нет потому что совершенно непонятно что нужно сделать - что и где в столбце B, всегда ли в таком порядке, куда нужно переносить (и нужно ли именно переносить).
Судя по описанию можно сделать так - цикл по данным, считаем в словаре количество повторов, затем удаляем все исходные данные, затем цикл по словарю и генерация листов с четырмя киевами и т.д.
0
0 / 0 / 0
Регистрация: 25.10.2014
Сообщений: 13
18.09.2015, 18:44  [ТС]
Вот попитался объяснить в файле.
Исходный лист в нем выписка так как она выглядит изначально.
в листе два три и четыре соответственные города.
разделитель уже работает хорошо а вот с отделением разных городов друг от дружки пока не получаеться.(
Вложения
Тип файла: xlsx Копия виписка.xlsx (18.6 Кб, 6 просмотров)
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
18.09.2015, 20:11
Так и не ответили:
1. Нужно переносить или копировать? Хотя если переносить - то по факту нужно всего лишь в конце стереть всё с исходного листа, или вообще его удалить.
2. Эти листы уже есть, или их нужно создавать?
3.Если листы уже есть - они пустые, или возможно уже с данными, и их нужно дополнять?

А так в общих чертах алгоритм всё тот же - цикл по данным, копируем строку на нужный лист в первую свободную строку или в строку с увеличившимся номером (считаем сколько скопировали), если город выше тот же, а фамилия другая, то вставляем строку-разделитель.
0
0 / 0 / 0
Регистрация: 25.10.2014
Сообщений: 13
23.09.2015, 16:58  [ТС]
Hugo121
1.Копировать
2.Листов нет нужно создавать
3.Пустые.

Как то так. очень буду признателен за пример, у меня не получаеться.. копирует хаотически как хочет..(
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
23.09.2015, 21:43
Эх, гулять так гулять - создам сразу новую книгу!
А вообще так проще
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
Option Explicit
 
Sub tt()
    Dim wb1 As Workbook, wb2 As Workbook, c As Range, cc As Range
 
Application.ScreenUpdating = False
 
    Set wb1 = ActiveWorkbook
    Set wb2 = Workbooks.Add(1)
 
    With wb2
        For Each c In wb1.Sheets("Исходный лист").UsedRange.Columns(2).Cells
 
            If Not SheetExists(c.Text, wb2) Then
                .Worksheets.Add(after:=.Sheets(.Sheets.Count)).Name = c.Text
                c.EntireRow.Copy .Sheets(.Sheets.Count).Cells(1)
            Else
                Set cc = .Sheets(c.Text).Cells(.Sheets(1).Rows.Count, "B").End(xlUp)(2).Offset(, -1)
                c.EntireRow.Copy cc
                If cc.Text <> cc.Offset(-1).Text Then
                    With cc
                        .EntireRow.Insert Shift:=xlDown
                        With .Offset(-1).Resize(, 7).Interior
                            .Pattern = xlSolid
                            .PatternColorIndex = xlAutomatic
                            .ThemeColor = xlThemeColorLight1
                            .TintAndShade = 0.499984740745262
                            .PatternTintAndShade = 0
                        End With
                    End With
                End If
            End If
 
        Next
    End With
    Application.DisplayAlerts = False
    wb2.Sheets(1).Delete
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
 
End Sub
 
 
Function SheetExists(SheetName As String, wb As Workbook) As Boolean
    On Error Resume Next
    SheetExists = Not wb.Sheets(SheetName) Is Nothing
End Function
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.09.2015, 21:43
Помогаю со студенческими работами здесь

Как добавить разделитель и свои иконки на кнопки в тулбаре Excel
Нужна помощь. Не знаю как добавить сепаратор и свое изображение на копки, созданного мной тулбара в Excel. Неужели нельзя изменить...

Как сменить системные параметры: десятичный разделитель и разделитель в дате?
Как сменить системные параметры: 'десятичный разделитель' и 'разделитель в дате'? Подозреваю, что с помощью API-функций. Хотелось...

Фильтрация на листе Excel
Доброго времени суток всем! Надеюсь, кто-нибудь сможет мне подсказать. Передо мной стоит рабочая задачка: есть таблица, в которой...

изображения в листе excel
подскажите, пожалуйста, как &quot;выделить&quot; вставленные в лист excel растровые изображения? (или что ещё лучше, получить коллекцию всех вставок...

Поиск на листе Excel
Здравствуйте форумчане. В програмировании делаю только первые шаги, подскажите пожалуйста как сделать.. Есть база данных в Excel (три...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru