Я строю инвентаризационную книгу. В каждой строке находится информация, относящаяся к номеру детали, включая количество. Я хочу добавить пару кнопок:

  • Тот, который добавит один к инвентарному количеству
  • Тот, который вычтет один из инвентарного количества

В результате в одной строке будут две кнопки, контролирующие количество инвентаря. Я хотел бы иметь возможность дублировать эти кнопки, сохраняя относительную ссылку в рабочей книге. Например, кнопка, скопированная / дублированная в строку 3, будет контролировать количество инвентаря для строки 3.

Будет 100 строк, и изменение элемента управления вручную нецелесообразно. В идеале решение будет создавать 1000 строк с созданными командными кнопками.

1 ответ1

1

Вот идея. Как насчет создания только 2 кнопок (вместо сотен) и заставить их двигаться, чтобы следовать за выбором?

РЕДАКТИРОВАТЬ: После некоторого обсуждения и разъяснения, OP Phil попросил, чтобы кнопки обновления инвентаря отображались рядом с выбранной ячейкой, когда пользователь щелкает в столбце F, и были скрыты в противном случае.

На видео ниже показано, как работают кнопки tagalong:

На рабочем листе есть простой макрос, который отображает и перемещает кнопки:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Column = 6 Then
        ActiveSheet.Shapes("Picture 1").Visible = True
        ActiveSheet.Shapes("Picture 2").Visible = True
        With ActiveSheet.Shapes("Picture 1")
            .Left = Target.Offset(, 2).Left
            .Top = Target.Offset(0).Top
        End With
        With ActiveSheet.Shapes("Picture 2")
            .Left = Target.Offset(, 3).Left
            .Top = Target.Offset(0).Top
        End With
    Else
        ActiveSheet.Shapes("Picture 1").Visible = False
        ActiveSheet.Shapes("Picture 2").Visible = False
    End If    
End Sub

Я не мог изменить цвет обычных командных кнопок Excel, поэтому я вставил картинки и назначил макросы объектам рисунков. Вот почему они упоминаются как Shapes("Рисунок 1") в коде выше. Если вы используете обычные командные кнопки Excel, ссылка изменится на название кнопки.

Сами кнопки имеют еще более простой код:

Sub Button1_Click()
    ActiveCell.Value = ActiveCell.Value + 1
End Sub

Sub Button2_Click()
    ActiveCell.Value = ActiveCell.Value - 1
End Sub

Надеюсь, это поможет, и удачи.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .