Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Возможно ли сделать / 5 сообщений из 5, страница 1 из 1
01.11.2016, 21:44
    #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
02.11.2016, 00:51
    #39339476
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли сделать
4 8 15 16 23 42
...
Рейтинг: 0 / 0
02.11.2016, 20:28
    #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
02.11.2016, 20:42
    #39340315
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли сделать
Вообще-то если предполагается удаление, то его выполняют от конца к началу, а не наоборот.
...
Рейтинг: 0 / 0
02.11.2016, 20:50
    #39340319
JustNick
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли сделать
Akina,

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

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

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


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