Лии нужна плавающая кнопка с назначенным макросом. Таким образом, когда она перемещается влево, вправо, вверх или вниз, кнопка остается рядом с ячейкой, над которой она работает. Лия задается вопросом, есть ли способ добавить такую кнопку в Excel.
Невозможно сделать это без использования макроса для управления размещением кнопки. (Это не должно быть большой проблемой, поскольку вы уже используете хотя бы один макрос в книге – тот, который запускается плавающей кнопкой.)
Прежде чем углубляться в подробности того, как это сделать , вы захотите подумать, действительно ли вы хотите использовать этот подход. Например, вы можете назначить свой макрос сочетанию клавиш или кнопке на панели быстрого доступа. Любой подход избавит от необходимости постоянно перемещать плавающую кнопку.
Если вы определенно хотите пойти по маршруту кнопки, тогда создайте свою экранную кнопку и свяжите ее со своим макросом. Затем просто создайте обработчик событий, который перемещает кнопку каждый раз, когда вы меняете выбранную ячейку. Например, предположим, что имя вашей кнопки – «Кнопка 1». В этом случае вы можете использовать следующий макрос:
Private Sub Worksheet_SelectionChange (ByVal Target As Range) With ActiveSheet.Shapes ("Button 1") .Top = Target.Offset (1) .Top .Left = Target.Offset (, 1) .Left End WithEnd Sub
Помните, что это обработчик событий, поэтому его нужно поместить в окно кода для рабочего листа, к которому он применяется. В результате кнопка перемещается так, чтобы она всегда находилась в правом нижнем углу выбранной ячейки.
Следует также отметить, что есть два способа создать кнопку макроса – либо как Активный элемент X или устаревший, неактивный элемент управления X. Вышеупомянутый подход отлично работает, если вы используете устаревший тип кнопки. Однако, если вы используете элемент управления Active X, вам нужно немного изменить макрос:
Private Sub Worksheet_SelectionChange (ByVal Target As Range) With ActiveSheet.OLEObjects ("CommandButton1 ") .Top = Target.Offset (1) .Top .Left = Target.Offset (, 1) .Left End WithEnd Sub
Обратите внимание, что единственное изменение касается объекта, на который имеется ссылка. При наличии соответствующего обработчика событий всякий раз, когда вы меняете ячейку, выбранную на экране, кнопка перемещается так, чтобы находиться только в правом нижнем углу выбранной ячейки. Таким образом, это не настоящая «плавающая» кнопка, которая все время парит в одном и том же месте. Это должно быть нормально в ситуации Лии, поскольку она хотела, чтобы кнопка находилась рядом с ячейкой, в которой она работает (выбранная ячейка), а не с ячейкой, которую она просматривает (например, когда она прокручивает, используя полосы прокрутки). p>