VBA Excel Изменение функций текстового поля с формулой - PullRequest
0 голосов
/ 21 апреля 2020

Мне удалось с помощью ввода текстового поля в формулу согласно следующему запросу, который я поднял некоторое время go ...

VBA Excel, как написать формулу Excel в textbox

и все в порядке, но у меня есть проблемы с вводом правильных шрифтов в это текстовое поле.

В основном у меня есть два отдельных набора кода, которые я бы хотел объединить в один

Sub Duct1()
   Set myDocument = ActiveSheet
   With myDocument.Shapes.AddTextbox(msoTextOrientationHorizontal, 300, 140, 180, 30)
    .name = "Duct1"
      With .TextFrame
     .HorizontalAlignment = xlLeft
        With .Characters
        .Text = "1W-20mm/90' upturn"
        .Font.ColorIndex = 3
        .Font.Size = 16
        .Font.Bold = True
     End With
     End With
     .Rotation = 25
     .Fill.Visible = False
     .Line.Visible = False
   End With
 End Sub

  Sub Duct1Desc()
  ActiveSheet.Shapes("Duct1").OLEFormat.Object.Formula = "=AB1"
  End Sub

Для второго кода, который я пробовал также:

 Sub Duct1Desc()
 ActiveSheet.Shapes("Duct1").OLEFormat.Object.Formula = "=AB1"
 With ActiveSheet.Shapes("Duct1")
 .Font.ColorIndex = 3
 .Font.Size = 16
 .Font.Bold = True
 End With
 End Sub

Но в этом выпуске я получил ошибку, что VBA не поддерживает это свойство или метод .

Может ли кто-нибудь помочь мне связать эти 2 кода вместе?

Спасибо enter image description here

1 Ответ

0 голосов
/ 21 апреля 2020

Это работает для меня:

Dim s As Shape

Set s = ActiveSheet.Shapes("myBox")
s.DrawingObject.Formula = "=B2"

ОК. Я думал, что проблема была в связывании, а не в форматировании: это работает для меня.

Sub Duct1Desc()
    Dim s
    Set s = ActiveSheet.Shapes("Duct1")
    s.OLEFormat.Object.Formula = "=A1"
    With s.DrawingObject
        .Font.ColorIndex = 3
        .Font.Size = 20
        .Font.Bold = True
    End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...