|
Событие на изменение столбца. Каждого по отдельности.
|
|
|
ant6729 |
Дата: Пятница, 02.02.2018, 22:39 |
Сообщение № 1 |
|
|
Группа: Проверенные
Ранг: Ветеран
Сообщений: 533
Репутация:
2
±
Замечаний:
40% ±
 Excel 2010 | |
Всем, привет!
Есть три столбика с данными. Произвольно. На изменение в каждом отдельном столбике я хочу в дальнейшем прописать отдельную процедуру.
[vba]Код Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range Dim KeyCells2 As Range Dim KeyCells3 As Range
lr = Sheets("Лист1").Cells(Rows.Count, 6).End(xlUp).Row lr2 = Sheets("Лист1").Cells(Rows.Count, 7).End(xlUp).Row lr3 = Sheets("Лист1").Cells(Rows.Count, 8).End(xlUp).Row
Set KeyCells = Range("F1:H1" & lr) Set KeyCells2 = Range("E1:E" & lr2) Set KeyCells3 = Range("H1:H" & lr3)
If Not Application.Intersect(KeyCells, Range(Target.Address)) _ Is Nothing Then MsgBox "1" End If
If Not Application.Intersect(KeyCells2, Range(Target.Address)) _ Is Nothing Then MsgBox "2" End If
If Not Application.Intersect(KeyCells3, Range(Target.Address)) _ Is Nothing Then MsgBox "3" End If
End Sub
[/vba]
То есть меняется:
1 столбик - выполняется процедура1 2 столбик - выполняется процедура2 3 столбик - выполняется процедура3
Подскажите, пожалуйста, как это сделать?
Всем, привет!
Есть три столбика с данными. Произвольно. На изменение в каждом отдельном столбике я хочу в дальнейшем прописать отдельную процедуру.
[vba]Код Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range Dim KeyCells2 As Range Dim KeyCells3 As Range
lr = Sheets("Лист1").Cells(Rows.Count, 6).End(xlUp).Row lr2 = Sheets("Лист1").Cells(Rows.Count, 7).End(xlUp).Row lr3 = Sheets("Лист1").Cells(Rows.Count, 8).End(xlUp).Row
Set KeyCells = Range("F1:H1" & lr) Set KeyCells2 = Range("E1:E" & lr2) Set KeyCells3 = Range("H1:H" & lr3)
If Not Application.Intersect(KeyCells, Range(Target.Address)) _ Is Nothing Then MsgBox "1" End If
If Not Application.Intersect(KeyCells2, Range(Target.Address)) _ Is Nothing Then MsgBox "2" End If
If Not Application.Intersect(KeyCells3, Range(Target.Address)) _ Is Nothing Then MsgBox "3" End If
End Sub
[/vba]
То есть меняется:
1 столбик - выполняется процедура1 2 столбик - выполняется процедура2 3 столбик - выполняется процедура3
Подскажите, пожалуйста, как это сделать?ant6729
Сообщение отредактировал ant6729 - Пятница, 02.02.2018, 23:06 |
| |
| Ответить
|
|
Апострофф |
Дата: Пятница, 02.02.2018, 23:02 |
Сообщение № 2 |
|
|
Группа: Проверенные
Ранг: Обитатель
Сообщений: 468
Репутация:
129
±
Замечаний:
0% ±
 Excel 1997 | |
ant6729, алфавит подучите... [vba]Код lr = Sheets("Ñïèñêè").Cells(Rows.Count, 6).End(xlUp).Row 'F lr2 = Sheets("Ñïèñêè").Cells(Rows.Count, 7).End(xlUp).Row 'G lr3 = Sheets("Ñïèñêè").Cells(Rows.Count, 8).End(xlUp).Row 'H
Set KeyCells = Range("F1:F" & lr) Set KeyCells2 = Range("G1:G" & lr2) Set KeyCells3 = Range("H1:H" & lr3)
If Not Application.Intersect(KeyCells, Target) Is Nothing Then процедура1 'MsgBox "1" End If 'и т.д. [/vba]
ant6729, алфавит подучите... [vba]Код lr = Sheets("Ñïèñêè").Cells(Rows.Count, 6).End(xlUp).Row 'F lr2 = Sheets("Ñïèñêè").Cells(Rows.Count, 7).End(xlUp).Row 'G lr3 = Sheets("Ñïèñêè").Cells(Rows.Count, 8).End(xlUp).Row 'H
Set KeyCells = Range("F1:F" & lr) Set KeyCells2 = Range("G1:G" & lr2) Set KeyCells3 = Range("H1:H" & lr3)
If Not Application.Intersect(KeyCells, Target) Is Nothing Then процедура1 'MsgBox "1" End If 'и т.д. [/vba]Апострофф
|
| |
| Ответить
|
|
ant6729 |
Дата: Пятница, 02.02.2018, 23:31 |
Сообщение № 3 |
|
|
Группа: Проверенные
Ранг: Ветеран
Сообщений: 533
Репутация:
2
±
Замечаний:
40% ±
 Excel 2010 | |
Как-то так
[vba]Код Private Sub Worksheet_Change(ByVal Target As Range)
lr = Sheets("Ñïèñêè").Cells(Rows.Count, 6).End(xlUp).Row lr2 = Sheets("Ñïèñêè").Cells(Rows.Count, 7).End(xlUp).Row lr3 = Sheets("Ñïèñêè").Cells(Rows.Count, 8).End(xlUp).Row
If Not Application.Intersect(Target, Range("F1:F" & lr)) Is Nothing Then MsgBox "1" End If
If Not Application.Intersect(Target, Range("G1:G" & lr2)) Is Nothing Then MsgBox "2" End If
If Not Application.Intersect(Target, Range("H1:H" & lr3)) Is Nothing Then MsgBox "3" End If
End Sub [/vba]
Как-то так
[vba]Код Private Sub Worksheet_Change(ByVal Target As Range)
lr = Sheets("Ñïèñêè").Cells(Rows.Count, 6).End(xlUp).Row lr2 = Sheets("Ñïèñêè").Cells(Rows.Count, 7).End(xlUp).Row lr3 = Sheets("Ñïèñêè").Cells(Rows.Count, 8).End(xlUp).Row
If Not Application.Intersect(Target, Range("F1:F" & lr)) Is Nothing Then MsgBox "1" End If
If Not Application.Intersect(Target, Range("G1:G" & lr2)) Is Nothing Then MsgBox "2" End If
If Not Application.Intersect(Target, Range("H1:H" & lr3)) Is Nothing Then MsgBox "3" End If
End Sub [/vba]ant6729
|
| |
| Ответить
|
|
Апострофф |
Дата: Суббота, 03.02.2018, 08:29 |
Сообщение № 4 |
|
|
Группа: Проверенные
Ранг: Обитатель
Сообщений: 468
Репутация:
129
±
Замечаний:
0% ±
 Excel 1997 | |
[offtop] ant6729, неужели сам придумал [/offtop]
[offtop] ant6729, неужели сам придумал [/offtop]Апострофф
|
| |
| Ответить
|
|
ant6729 |
Дата: Воскресенье, 04.02.2018, 00:11 |
Сообщение № 5 |
|
|
Группа: Проверенные
Ранг: Ветеран
Сообщений: 533
Репутация:
2
±
Замечаний:
40% ±
 Excel 2010 | |
Бывает, что получается, но когда есть у кого свериться и поучиться, еще лучше.
Бывает, что получается, но когда есть у кого свериться и поучиться, еще лучше.ant6729
|
| |
| Ответить
|