Домашняя страница Undo Do Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Записи участника (krosav4ig) - Мир MS Excel

Результаты поиска
krosav4ig Дата: Пятница, 15.03.2019, 16:21 | Сообщение № 381 | Тема: Изменение индекса списка в коде. Зачем?
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
а можно я немного поумничаю?
в коде формы
[vba]
Код
Option Explicit
Private Sub MoveUpButton_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    TextBox1.Text = "Произведен двойной щелчок"
    Cancel = False
    Call MoveUpButton_Click
End Sub
Private Sub MoveDownButton_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    Cancel = False
    Call MoveDownButton_Click
End Sub

Private Sub MoveUpButton_Click()
    ShiftItem ListBox1, True
End Sub
Private Sub MoveDownButton_Click()
    ShiftItem ListBox1, False
End Sub

Private Sub ShiftItem(ByRef lb As MSForms.Control, bUp As Boolean)
    Dim i%, j%, l()
    With lb
        i = .ListIndex
        If i + bUp >= 0 And i + bUp < lb.ListCount - 1 Then
            l = .List
            For j = 0 To UBound(l, 2)
                swap l(i, j), l(i + (1 Or bUp), j):
            Next
            .List = l
        End If        
    End With
End Sub
Private Sub swap(ByRef a, ByRef b)
    Dim c: c = a: a = b: b = c
End Sub

Private Sub UserForm_Initialize()
    With ListBox1
        .List = [transpose(proper(text(row(r1:r12)*30,"[$-419]mmmm")))]
        .ListIndex = 0
    End With
End Sub

Private Sub OKButton_Click()
    Unload Me
End Sub
[/vba]в Module1 [vba]
Код
Sub ShowDialog()
    UserForm1.Show
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеа можно я немного поумничаю?
в коде формы
[vba]
Код
Option Explicit
Private Sub MoveUpButton_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    TextBox1.Text = "Произведен двойной щелчок"
    Cancel = False
    Call MoveUpButton_Click
End Sub
Private Sub MoveDownButton_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    Cancel = False
    Call MoveDownButton_Click
End Sub

Private Sub MoveUpButton_Click()
    ShiftItem ListBox1, True
End Sub
Private Sub MoveDownButton_Click()
    ShiftItem ListBox1, False
End Sub

Private Sub ShiftItem(ByRef lb As MSForms.Control, bUp As Boolean)
    Dim i%, j%, l()
    With lb
        i = .ListIndex
        If i + bUp >= 0 And i + bUp < lb.ListCount - 1 Then
            l = .List
            For j = 0 To UBound(l, 2)
                swap l(i, j), l(i + (1 Or bUp), j):
            Next
            .List = l
        End If        
    End With
End Sub
Private Sub swap(ByRef a, ByRef b)
    Dim c: c = a: a = b: b = c
End Sub

Private Sub UserForm_Initialize()
    With ListBox1
        .List = [transpose(proper(text(row(r1:r12)*30,"[$-419]mmmm")))]
        .ListIndex = 0
    End With
End Sub

Private Sub OKButton_Click()
    Unload Me
End Sub
[/vba]в Module1 [vba]
Код
Sub ShowDialog()
    UserForm1.Show
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 15.03.2019 в 16:21
krosav4ig Дата: Пятница, 15.03.2019, 07:54 | Сообщение № 382 | Тема: Проверка данных, что то не так!?
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Доброе утро
У меня работает
К сообщению приложен файл: 7348476.png (16.7 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеДоброе утро
У меня работает

Автор - krosav4ig
Дата добавления - 15.03.2019 в 07:54
krosav4ig Дата: Пятница, 15.03.2019, 02:57 | Сообщение № 383 | Тема: Имя текущей книги + текст
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Anton2201, тыц
крос


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Пятница, 15.03.2019, 03:01
 
Ответить
СообщениеAnton2201, тыц
крос

Автор - krosav4ig
Дата добавления - 15.03.2019 в 02:57
krosav4ig Дата: Пятница, 15.03.2019, 02:18 | Сообщение № 384 | Тема: Убрать ; в строках txt файла при сохранении из xls
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Anton2201, и вам здрасьте
Как сделать так что бы этих ";" не было в финальном txt файле?
написать правильный макрос, а можно вообще без макроса обойтись (но это не точно)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеAnton2201, и вам здрасьте
Как сделать так что бы этих ";" не было в финальном txt файле?
написать правильный макрос, а можно вообще без макроса обойтись (но это не точно)

Автор - krosav4ig
Дата добавления - 15.03.2019 в 02:18
krosav4ig Дата: Четверг, 14.03.2019, 18:29 | Сообщение № 385 | Тема: Выделение диапазона ячеек
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Дратути.
Боян


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеДратути.
Боян

Автор - krosav4ig
Дата добавления - 14.03.2019 в 18:29
krosav4ig Дата: Четверг, 14.03.2019, 02:00 | Сообщение № 386 | Тема: Загрузка комбобокса с пустой строкой в списке
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Здравствуйте.[vba]
Код
With .CmbDD1
.List = [transpose(text(row(r1:r31),"dd"))] 'Заполнение данными дата CmbDD1
.ListIndex = Day(Date) - 1 'Вывод текущей даты в поле просмотра
.additem"",0
End With
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеЗдравствуйте.[vba]
Код
With .CmbDD1
.List = [transpose(text(row(r1:r31),"dd"))] 'Заполнение данными дата CmbDD1
.ListIndex = Day(Date) - 1 'Вывод текущей даты в поле просмотра
.additem"",0
End With
[/vba]

Автор - krosav4ig
Дата добавления - 14.03.2019 в 02:00
krosav4ig Дата: Среда, 13.03.2019, 22:47 | Сообщение № 387 | Тема: Поиск значений в интервале дат c тремя условиями
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
еще вариант
Код
=СУММПРОИЗВ((МУМНОЖ(--(Лист1!$B$2:$C$26=$A2:$B2);{1:1})=2)*(ГПР(Ч(ИНДЕКС(+Лист1!$E$2:$E$26;));Лист2!$B$1:$E$1;1)=C$1)*Лист1!$D$2:$D$26)
и сводная с группировкой по году и месяцу
К сообщению приложен файл: 1843189.xlsx (18.5 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениееще вариант
Код
=СУММПРОИЗВ((МУМНОЖ(--(Лист1!$B$2:$C$26=$A2:$B2);{1:1})=2)*(ГПР(Ч(ИНДЕКС(+Лист1!$E$2:$E$26;));Лист2!$B$1:$E$1;1)=C$1)*Лист1!$D$2:$D$26)
и сводная с группировкой по году и месяцу

Автор - krosav4ig
Дата добавления - 13.03.2019 в 22:47
krosav4ig Дата: Среда, 13.03.2019, 22:17 | Сообщение № 388 | Тема: формулы в форматированных таблицах
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Добрый день
в формуле стоит , допустим, столбец [дата], то как его закрепить, чтобы он не "ехал" при протягивании
Код
[[дата]:[дата]]
[vba]
Код
=СУММПРОИЗВ((Таблица17[@[Фамилия]:[Фамилия]]=Таблица18[[Фамилия]:[Фамилия]])*(Таблица17[[#Заголовки];[2018 ноябрь]]=Таблица18[[дата]:[дата]])*Таблица18[[сумма, руб]:[сумма, руб]])
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Среда, 13.03.2019, 22:21
 
Ответить
СообщениеДобрый день
в формуле стоит , допустим, столбец [дата], то как его закрепить, чтобы он не "ехал" при протягивании
Код
[[дата]:[дата]]
[vba]
Код
=СУММПРОИЗВ((Таблица17[@[Фамилия]:[Фамилия]]=Таблица18[[Фамилия]:[Фамилия]])*(Таблица17[[#Заголовки];[2018 ноябрь]]=Таблица18[[дата]:[дата]])*Таблица18[[сумма, руб]:[сумма, руб]])
[/vba]

Автор - krosav4ig
Дата добавления - 13.03.2019 в 22:17
krosav4ig Дата: Среда, 13.03.2019, 20:58 | Сообщение № 389 | Тема: Преобразовать неизвестный формат ячейки в формат времени
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
как домножить на 1 при помощи специальной вставки

в пустую ячейку вписать 1, скопировать эту ячейку, выделить диапазон, в котором числовые данные (числа, дата, время) записаны как текст, специальной вставкой (Ctrl+Alt+V) вставить как значения со включенной опцией умножить или разделить
К сообщению приложен файл: 0926154.png (24.9 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение
как домножить на 1 при помощи специальной вставки

в пустую ячейку вписать 1, скопировать эту ячейку, выделить диапазон, в котором числовые данные (числа, дата, время) записаны как текст, специальной вставкой (Ctrl+Alt+V) вставить как значения со включенной опцией умножить или разделить

Автор - krosav4ig
Дата добавления - 13.03.2019 в 20:58
krosav4ig Дата: Среда, 13.03.2019, 20:47 | Сообщение № 390 | Тема: Деление значений вертикального и горизонтального диапазонов
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
не летуче
Код
=СУММПРОИЗВ(ЕСЛИОШИБКА(ТРАНСП(ОСТАТ(НАИМЕНЬШИЙ(СТРОКА(E7:G14)/1%+E7:G14;ЧИСЛСТОЛБ(E7:G14)*(СТРОКА(E7:E14)-6));100))/D3:K3;))


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениене летуче
Код
=СУММПРОИЗВ(ЕСЛИОШИБКА(ТРАНСП(ОСТАТ(НАИМЕНЬШИЙ(СТРОКА(E7:G14)/1%+E7:G14;ЧИСЛСТОЛБ(E7:G14)*(СТРОКА(E7:E14)-6));100))/D3:K3;))

Автор - krosav4ig
Дата добавления - 13.03.2019 в 20:47
krosav4ig Дата: Среда, 13.03.2019, 20:19 | Сообщение № 391 | Тема: Преобразовать неизвестный формат ячейки в формат времени
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
brener, время в столбце записано текстом
выделите, столбец, ctrl+h найти : заменить на : заменить все


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеbrener, время в столбце записано текстом
выделите, столбец, ctrl+h найти : заменить на : заменить все

Автор - krosav4ig
Дата добавления - 13.03.2019 в 20:19
krosav4ig Дата: Среда, 13.03.2019, 14:32 | Сообщение № 392 | Тема: Математический анализ - таблица автоматического расчета
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
вариант UDF, для x64 нужно установить tablacus scriptcontrol
[vba]
Код
Function fx$(expr$, arg As Variant)
    With CreateObject("scriptcontrol")
        expr = Replace(Replace(Replace(expr, ChrW(923), "&&"), "V", "||"), "¬", "!")
        .Language = "JScript": fx = .Eval(Join(arg, ",") & "," & expr & "?1:0")
    End With
End Function
[/vba]

в ячейках массивная формула
Код
=fx(Z$7;B$7:D$7&"="&B14:D14)

[p.s.]xor это ^, если что
К сообщению приложен файл: 1799329.xlsm (36.1 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Среда, 13.03.2019, 14:38
 
Ответить
Сообщениевариант UDF, для x64 нужно установить tablacus scriptcontrol
[vba]
Код
Function fx$(expr$, arg As Variant)
    With CreateObject("scriptcontrol")
        expr = Replace(Replace(Replace(expr, ChrW(923), "&&"), "V", "||"), "¬", "!")
        .Language = "JScript": fx = .Eval(Join(arg, ",") & "," & expr & "?1:0")
    End With
End Function
[/vba]

в ячейках массивная формула
Код
=fx(Z$7;B$7:D$7&"="&B14:D14)

[p.s.]xor это ^, если что

Автор - krosav4ig
Дата добавления - 13.03.2019 в 14:32
krosav4ig Дата: Среда, 13.03.2019, 00:25 | Сообщение № 393 | Тема: Сломались теги формул
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Как интересно.

гы.
если в браузере нету tampermonkey или подобных, то тот файл - просто текстовый файл.
если есть - кастомный клиентский js скрипт, при желании его можно внедрить шаблон общего вида страниц форума



email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение
Как интересно.

гы.
если в браузере нету tampermonkey или подобных, то тот файл - просто текстовый файл.
если есть - кастомный клиентский js скрипт, при желании его можно внедрить шаблон общего вида страниц форума


Автор - krosav4ig
Дата добавления - 13.03.2019 в 00:25
krosav4ig Дата: Вторник, 12.03.2019, 15:13 | Сообщение № 394 | Тема: Сломались теги формул
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
_Boroda_, а у мну нет (
ну я-то знаю как починить - две скобочки добавить, ужо Сергею написал на sergeyizotov@excelworld.ru , но видимо он еще не прочитал


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение_Boroda_, а у мну нет (
ну я-то знаю как починить - две скобочки добавить, ужо Сергею написал на sergeyizotov@excelworld.ru , но видимо он еще не прочитал

Автор - krosav4ig
Дата добавления - 12.03.2019 в 15:13
krosav4ig Дата: Вторник, 12.03.2019, 14:37 | Сообщение № 395 | Тема: Суммирование с условием
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Kaiyr, откуда берутся циферки в строке
Код
Koriya    6 HINDI  621319
, а то под ней до следующей жирной в сумме 87671
у мну такие суммы вышли по вашей таблице[vba]
Код
CHHATTISGARH 249632
Koriya       94653
Bharatpur    46439
Baikunthpur  7511
[/vba] правильно?


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Вторник, 12.03.2019, 14:45
 
Ответить
СообщениеKaiyr, откуда берутся циферки в строке
Код
Koriya    6 HINDI  621319
, а то под ней до следующей жирной в сумме 87671
у мну такие суммы вышли по вашей таблице[vba]
Код
CHHATTISGARH 249632
Koriya       94653
Bharatpur    46439
Baikunthpur  7511
[/vba] правильно?

Автор - krosav4ig
Дата добавления - 12.03.2019 в 14:37
krosav4ig Дата: Понедельник, 11.03.2019, 22:27 | Сообщение № 396 | Тема: Выполнить код VBA по событию
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеДействия макросов Access (Справочник по Access для разработчиков)

Автор - krosav4ig
Дата добавления - 11.03.2019 в 22:27
krosav4ig Дата: Понедельник, 11.03.2019, 20:44 | Сообщение № 397 | Тема: Выполнить код VBA по событию
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Дратути.
Как вариант, пользовать ЗадатьЛокПеременную
меняем Sub на Function и
В макросах (Создание>Макрос) для запуска vba кода (тоже должна быть функция) есть ЗапускПрограммы
К сообщению приложен файл: 5440184.png (12.5 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Понедельник, 11.03.2019, 20:49
 
Ответить
СообщениеДратути.
Как вариант, пользовать ЗадатьЛокПеременную
меняем Sub на Function и
В макросах (Создание>Макрос) для запуска vba кода (тоже должна быть функция) есть ЗапускПрограммы

Автор - krosav4ig
Дата добавления - 11.03.2019 в 20:44
krosav4ig Дата: Понедельник, 11.03.2019, 18:35 | Сообщение № 398 | Тема: К существующему макросу добавить функционал
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
[vba]
Код
If lcase(FileItem.Name) like "*pdf" then
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение[vba]
Код
If lcase(FileItem.Name) like "*pdf" then
[/vba]

Автор - krosav4ig
Дата добавления - 11.03.2019 в 18:35
krosav4ig Дата: Понедельник, 11.03.2019, 16:26 | Сообщение № 399 | Тема: Посчитать количество изменений в диапазоне ячеек
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Так надо что ли?
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim dic As Object, arr1 As Variant, i&, j&, ar As Range, ac As Range
    If Not Intersect(Target, [A1:R35]) Is Nothing Then
        With Application
            Set ac = .ActiveCell
            Set dic = CreateObject("scripting.dictionary")
            .ScreenUpdating = 0
            .EnableEvents = 0
            .Undo 'отмена изменения
            With Target
                For Each ar In .Areas
                    i = i + 1
                    With ar
                        If .Count = 1 Then
                            ReDim arr1(1 To 1, 1 To 1)
                            arr1(1, 1) = .Value
                            dic(.Address) = arr1
                        Else
                            dic(.Address) = .Value
                        End If
                    End With
                Next
            End With
            .Undo 'отмена отмены изменения
            With Target
                For Each ar In .Areas
                    For i = 1 To ar.Rows.Count
                        For j = 1 To ar.Columns.Count
                            If dic(ar.Address)(i, j) <> ar.Cells(i, j) Then
                    With ar.Cells(i, j).Offset(, 19)
                    .Value = IIf(IsNumeric(.Value), .Value, 0) + 1
                    End With
                            End If
                Next j, i, ar
            End With
            ac.Activate
            .ScreenUpdating = 1
            .EnableEvents = 1
        End With
        Set dic = Nothing
    End If
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеТак надо что ли?
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim dic As Object, arr1 As Variant, i&, j&, ar As Range, ac As Range
    If Not Intersect(Target, [A1:R35]) Is Nothing Then
        With Application
            Set ac = .ActiveCell
            Set dic = CreateObject("scripting.dictionary")
            .ScreenUpdating = 0
            .EnableEvents = 0
            .Undo 'отмена изменения
            With Target
                For Each ar In .Areas
                    i = i + 1
                    With ar
                        If .Count = 1 Then
                            ReDim arr1(1 To 1, 1 To 1)
                            arr1(1, 1) = .Value
                            dic(.Address) = arr1
                        Else
                            dic(.Address) = .Value
                        End If
                    End With
                Next
            End With
            .Undo 'отмена отмены изменения
            With Target
                For Each ar In .Areas
                    For i = 1 To ar.Rows.Count
                        For j = 1 To ar.Columns.Count
                            If dic(ar.Address)(i, j) <> ar.Cells(i, j) Then
                    With ar.Cells(i, j).Offset(, 19)
                    .Value = IIf(IsNumeric(.Value), .Value, 0) + 1
                    End With
                            End If
                Next j, i, ar
            End With
            ac.Activate
            .ScreenUpdating = 1
            .EnableEvents = 1
        End With
        Set dic = Nothing
    End If
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 11.03.2019 в 16:26
krosav4ig Дата: Понедельник, 11.03.2019, 15:24 | Сообщение № 400 | Тема: Посчитать количество изменений в диапазоне ячеек
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Здравствуйте [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim dic As Object, arr1 As Variant, i&, j&, ar As Range, ac As Range
    If Not Intersect(Target, [A1:R35]) Is Nothing Then
        With Application
            Set ac = .ActiveCell
            Set dic = CreateObject("scripting.dictionary")
            .ScreenUpdating = 0
            .EnableEvents = 0
            .Undo 'отмена изменения
            With Target
                For Each ar In .Areas
                    With ar
                        If .Count = 1 Then
                            ReDim arr1(1 To 1, 1 To 1)
                            arr1(1, 1) = .Value
                            dic(.Address) = arr1
                        Else
                            dic(.Address) = .Value
                        End If
                    End With
                Next
            End With
            .Undo 'отмена отмены изменения
            With Target
                For Each ar In .Areas
                    For i = 1 To ar.Rows.Count
                        For j = 1 To ar.Columns.Count
                            If dic(ar.Address)(i, j) <> ar.Cells(i, j) Then
                    ar.Cells(i, j).Offset(, 19) = 1
                            End If
                Next j, i, ar
            End With
            ac.Activate
            .ScreenUpdating = 1
            .EnableEvents = 1
        End With
        Set dic = Nothing
    End If
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Понедельник, 11.03.2019, 15:26
 
Ответить
СообщениеЗдравствуйте [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim dic As Object, arr1 As Variant, i&, j&, ar As Range, ac As Range
    If Not Intersect(Target, [A1:R35]) Is Nothing Then
        With Application
            Set ac = .ActiveCell
            Set dic = CreateObject("scripting.dictionary")
            .ScreenUpdating = 0
            .EnableEvents = 0
            .Undo 'отмена изменения
            With Target
                For Each ar In .Areas
                    With ar
                        If .Count = 1 Then
                            ReDim arr1(1 To 1, 1 To 1)
                            arr1(1, 1) = .Value
                            dic(.Address) = arr1
                        Else
                            dic(.Address) = .Value
                        End If
                    End With
                Next
            End With
            .Undo 'отмена отмены изменения
            With Target
                For Each ar In .Areas
                    For i = 1 To ar.Rows.Count
                        For j = 1 To ar.Columns.Count
                            If dic(ar.Address)(i, j) <> ar.Cells(i, j) Then
                    ar.Cells(i, j).Offset(, 19) = 1
                            End If
                Next j, i, ar
            End With
            ac.Activate
            .ScreenUpdating = 1
            .EnableEvents = 1
        End With
        Set dic = Nothing
    End If
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 11.03.2019 в 15:24
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!