VBA Excel Case запрос с Combobox и копирование формы - PullRequest
0 голосов
/ 26 февраля 2020

Я пытаюсь сделать мой выпадающий список в выпадающем списке функциональным.

enter image description here

, где я хотел бы увеличить значение в ячейке +1 в другой лист и скопировать форму с другого листа сразу.

Я написал код, подобный этому:

 Private Sub ComboBox1_Change()
 Dim rng As Range
 Dim picName As String
 Set rng = ActiveSheet.Range("B65")

 picName = "Firestop"

 Select Case rng

 Case "CFS-PL 107"

 Worksheets("hilti firestopping stores").Range("E5").Value = Range("E5") + 1
 Worksheets("hilti firestopping stores").Shapes("Firestop_Plug").Copy
 ActiveSheet.Range("L24").PasteSpecial Name = "Firestop"

 End Select
 End Sub

У меня есть в основном 2 проблемы здесь:

  1. Значение в ячейке «E5» увеличивается только до 1. Если я выберу этот случай, например, egain, он останется равным 1, тогда как он должен быть 2, поскольку я установил приращение +1.
  2. Объекты (изображения) скопированы должным образом, хотя я хотел бы задать им какое-то уникальное имя, отличное от «Picture ...», которое затем было бы упорядочено с нумерацией, как в случае «Picture».

Вопрос здесь: Как переименовать выбранную фигуру в Excel не решает мою проблему, потому что нет информации об увеличенном порядке идентификатора фигуры. Я нашел что-то подобное здесь:

установить имя фигуры после специальной пасты?

И попытался использовать в моем коде:

 Worksheets("hilti firestopping stores").Shapes("Firestop_Plug").Copy
 ActiveSheet.Range("L24").PasteSpcial
 With .Shapes(.Shapes.Count)
 .Name = "Firestop"
 End With

Но я получаю ошибку: **

Ошибка компиляции: неверная или неквалифицированная ссылка

**

enter image description here Может кто-нибудь посоветуйте, где может быть проблема?

1 Ответ

0 голосов
/ 27 февраля 2020

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

 With Sheets("hilti firestopping stores").Range("E5")  'Cell value incrementation by 1
            .Value = .Value + 1       
        End With
    Worksheets("hilti firestopping stores").Shapes("Firestop_Plug").Copy ' copying the shape from another sheet
    ActiveSheet.Range("L24").PasteSpecial   'paste the shape in the target sheet
    Selection.Name = "Firestop"   'instant rename the shape pasted, while is still selected

Тогда у меня есть обе проблемы отсортированы. В момент выбора Case мое изображение попадает на целевой лист, и значение в материнской ячейке изменяется автоматически.

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