Я пытаюсь поместить макрос в форму из vba, но я получил эту ошибку «Недопустимое использование свойства», почему?
Класс CContainer Код:Недопустимое использование ошибки свойства в Shape.OnAction
Option Explicit
Sub CreateContainer()
Dim s As Shape ' shape container
Dim t As Shape 'text container
Dim sr As Variant 'container for grouping
Dim w As Worksheet
Set w = ActiveWorkbook.Worksheets(1)
Set s = w.Shapes.AddShape(msoShapeRectangle, 10, 10, 100, 100)
With s
s.Fill.ForeColor.RGB = RGB(255, 255, 255)
s.Line.ForeColor.RGB = RGB(100, 100, 100)
s.Line.DashStyle = msoLineDash
s.Line.Style = msoLineSingle
s.Line.Weight = 0.5
s.Name = "ShapeExample"
End With
Set t = w.Shapes.AddTextbox(msoTextOrientationHorizontal, s.Left + 10, s.Top + 10, s.Width - 20, 20)
With t
t.Line.ForeColor.RGB = RGB(100, 100, 100)
t.Line.DashStyle = msoLineDash
t.TextFrame.Characters.Text = "Connector"
t.TextFrame.Characters.Font.Size = 10
t.TextFrame.HorizontalAlignment = xlHAlignCenter
t.Name = "TextShapeExample"
End With
Set sr = w.Shapes.Range(Array("ShapeExample", "TextShapeExample")).Group
sr.Name = "ContainerExample"
t.OnAction "MsgCall" '<-- here the error occurs
End Sub
Sub MsgCall()
MsgBox "Hello There"
End Sub
и вот модуль, где я хочу назвать его:
Option Explicit
Sub example()
Dim connector As CContainer
Set connector = New CContainer
connector.CreateContainer
End Sub
У вас отсутствует знак равенства? t.OnAction = "MsgCall" –
Нет, это приведет к ошибке 'application defined/object", но спасибо @CodyG. – Jey
Ошибка определения приложения/объекта из набора sr = w.Shapes.Range (Array («ShapeExample», «TextShapeExample»)). Групповая строка. –