Я пытаюсь написать макрос, который будет динамически заполнять текстовое поле на новом листе, будет значением ячейки с другого листа.Копирование значения ячейки в текстовое поле vba
мне удалось получить его работу с помощью этого:
Sub copyDetail()
' Define variables
Dim pre As Worksheet
Dim des As Worksheet
Set pre = Sheets("Presentation")
Set des = Sheets("Description")
Dim i As Integer
Dim lbl As String
' Scroll through labels and copy where boolean = 1
For i = 2 To 17
If des.Cells(i, 2) = 1 Then
lbl = des.Cells(i, 11)
Sheets("Presentation").Select
ActiveSheet.Shapes.Range(Array("TextBox 1")).Select
Selection.Text = lbl
Else
End If
Next i
End Sub
Я в принципе хочу, чтобы иметь возможность делать то, что это делает, но без выбора все время, как это меняет листы и замедляет мой код (У меня есть много других sub, чтобы работать вместе с этим). Я попытался вещи, как определение текстового поля с помощью этого:
Dim myLabel As Object
Set myLabel = pre.Shapes.Range(Array("TextBox 1"))
Но тогда я получаю «объект не поддерживает это свойство или метод» ошибка, когда я пытаюсь позвонить:
myLabel.Text = lbl