VBA, чтобы получить имя выбранной фигуры в Combobox - PullRequest
1 голос
/ 21 марта 2020

Я новичок в VBA. у меня есть несколько форм на листе. Я хочу, чтобы имя фигуры отображалось в поле со списком, а имя персонажа - в другом поле со списком, когда выбрана какая-либо конкретная фигура. поэтому я могу переименовать эту форму и указать ссылку на конкретный столбец Excel.

Я попытался выполнить следующие действия.

With Selection
    ActiveSheet.ComboBox1.Value = ActiveSheet.Shapes(Application.Caller).Name
End with

Не уверен, где назначить вышеуказанный код.

Я попытался назначить Приведенный выше код для фигуры с макрокомандой .onaction работает, но маркообразную фигуру нельзя редактировать дальше (для целей проектирования).

Также было бы здорово, если бы я мог удалить выбранную фигуру.

enter image description here

Заранее спасибо.

1 Ответ

1 голос
/ 21 марта 2020

Вы можете использовать свой код для любой фигуры, и вы можете изменить код в любое время, но при назначении макроса, эта форма не будет выбрана при нажатии ... Это становится своего рода контролем.

За исключением случая, когда вы заставляете его выбрать:

Debug.Print ActiveSheet.Shapes(Application.Caller).Name
shW.ComboBox1.value.Shapes(Application.Caller).Select

Вы можете изменить код из контекстного щелчка правой кнопкой мыши (в нижней части диаграммы) и выбрать «Назначить макрос ... -> Редактировать».

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

Sub testSelectedShape()
   Dim shW As Worksheet, sh As Object, selSh As Object
   Set shW = ActiveSheet
   If TypeName(Selection) <> "Range" Then
      Set selSh = Selection
      Set sh = shW.Shapes(selSh.Name)
      Debug.Print selSh.Name
      shW.ComboBox1.value = selSh.Name
  End If
End Sub

Вы можете просто удалить ее, используя sh.Delete ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...