Помещение X в ячейку с щелчком (Microsoft Excel)
У Венди есть рабочий лист, в котором довольно много данных, причем основные данные находятся в диапазоне C3: P312. Она хотела бы иметь макрос, который, если она щелкнет ячейку в этом диапазоне данных, поместит в ячейку «x».
Нет события, которое Excel может распознать как «щелчок» по ячейке.
Возможно, ближайшим событием является событие SelectionChange, которое запускается каждый раз при изменении выбора ячейки. Затем обработчик событий может проверить, находится ли выбранная ячейка в диапазоне C3: P312, а затем поместить в ячейку «x», если это так. Это сделает следующий обработчик событий:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim rInt As Range Dim rCell As Range Set rInt = Intersect(Target, Range("C3:P312")) If Not rInt Is Nothing Then For Each rCell In rInt rCell.Value = "x" Next End If Set rInt = Nothing Set rCell = Nothing End Sub
Однако с этим подходом связана проблема: событие SelectionChange не только срабатывает, когда вы щелкаете по другой ячейке, но также срабатывает, если вы используете клавиатуру для перехода от одной ячейки к другой на листе. Это означает, что если вы используете клавиатуру для перемещения по листу, вы оставите хвост из символов «x» в каждой перемещаемой ячейке.
Один из способов обойти это — изменить событие, запускающее проверку и изменение ячеек. Хотя в Excel нет события «щелчок», есть событие «двойной щелчок». Это означает, что вы можете изменить ячейку, в которой вы дважды щелкнули, как показано здесь:
Private Sub Worksheet_BeforeDoubleClick( _ ByVal Target As Range, Cancel As Boolean) Dim rInt As Range Dim rCell As Range Set rInt = Intersect(Target, Range("C3:P312")) If Not rInt Is Nothing Then For Each rCell In rInt rCell.Value = "x" Next End If Set rInt = Nothing Set rCell = Nothing Cancel = True End Sub
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (11681) применим к Microsoft Excel 2007, 2010, 2013 и 2016.
Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:
link: / excel-Putting_an_X_in_a_Clicked_Cell [Помещение X в ячейку, по которой кликнули]
.