powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Возможно ли сделать
5 сообщений из 5, страница 1 из 1
Возможно ли сделать
    #39339398
NovLaymer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые помогите пожалуйста ,возможно ли сделать :макрос В строке ФИО при наличии слово удалить Чтоб удалились только данные ФИО долж. 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 Вс. часов Ночные Празд. Норма. А те люди которые ниже, поднялись со всеми данными (т,е не было пустой строки ) Удаление всей строки не подходит !Заранее благодарен!
...
Рейтинг: 0 / 0
Возможно ли сделать
    #39339476
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4 8 15 16 23 42
...
Рейтинг: 0 / 0
Возможно ли сделать
    #39340305
JustNick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня так получилось... Может, кто подскажет более красивый вариант

Код: vbnet
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.
Option Explicit
Public Const ПерваяСтрокаДанных As Integer = 6
Public Const ПоследняяСтрокаДанных As Integer = 20
Public Const ПервыйСтолбецДанных As Integer = 2
Public Const ПоследнийСтолбецДанных As Integer = 38

Sub DelStr()
    Dim sRange As String
    Dim i As Integer
    Dim r As Range
    
    ' Ищем строки для удаления и формируем строку диапазона
    For i = ПерваяСтрокаДанных To ПоследняяСтрокаДанных
        If Cells(i, ПервыйСтолбецДанных) = "Удалить" Then
            sRange = sRange & IIf(Len(sRange) = 0, "", ",") _
                   & Split(Cells(i, ПервыйСтолбецДанных).Address, "$")(1) _
                   & CStr(i) & ":" _
                   & Split(Cells(i, ПоследнийСтолбецДанных).Address, "$")(1) _
                   & CStr(i)
        End If
    Next i
    ' удаляем/подчищаем
    If sRange <> "" Then
        ' удаляем ячейки диапазона со сдвигом вверх
        Range(sRange).Delete Shift:=xlUp
        
        ' исправляем нумерацию в первой колонке
        Range(Cells(ПерваяСтрокаДанных, 1), Cells(ПоследняяСтрокаДанных, 1)).ClearContents
        ' ставим начальные цифирки
        Cells(ПерваяСтрокаДанных, 1) = 1
        Cells(ПерваяСтрокаДанных + 1, 1) = 2
        ' ищем фактически последнюю заполненную строку
        i = Cells(ПерваяСтрокаДанных, ПервыйСтолбецДанных).End(xlDown).Row
        ' формируем диапазон
        sRange = Split(Columns(1).Address, "$")(2) & CStr(ПерваяСтрокаДанных) _
               & ":" & Split(Columns(1).Address, "$")(2) & CStr(i)
        ' проставляем нумерацию
        If sRange <> "" Then
            Set r = Worksheets("Табель").Range(Cells(ПерваяСтрокаДанных, 1), Cells(ПерваяСтрокаДанных + 1, 1))
            r.AutoFill Destination:=Worksheets("Табель").Range(sRange), Type:=xlFillDefault
        End If
    End If
End Sub
...
Рейтинг: 0 / 0
Возможно ли сделать
    #39340315
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то если предполагается удаление, то его выполняют от конца к началу, а не наоборот.
...
Рейтинг: 0 / 0
Возможно ли сделать
    #39340319
JustNick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

я удаляю все сразу. А ищу от начала к концу

Лучше с риббоном помогите http://www.sql.ru/forum/1236896/kak-peredat-index-v-combobox-na-ribbon-e

=D
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Возможно ли сделать
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]