Доступ к VBA - изменение значения TextBox из функции (ByRef)

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

Sub AppendTextBox([any textbox in my form], text As String)

[code that appends the text parameter to the textbox]

End Sub

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

Спасибо за вашу помощь.

2 ответа

Решение

Я нашел ответ, и это намного проще, чем я, хотя это:

Private Sub AAA(A)

A.Value = "Desired text"

End Sub

Или, если вы хотите добавить:

Private Sub AAA(A)

A.Value = A.Value & vbnewline & "Desired text"

End Sub

Привет, Зефрам, тебе удалось найти решение для этого? У меня есть один, но немного тяжелый, потому что он использует петли. Если у вас есть лучше, дайте мне знать.

Private Function change_TextBox2(altera As String, textbox As ctl, valor As Variant)
Dim ctl As Control
If altera = "Popula" Then
    For Each ctl In Me.Controls
        With ctl
         If (InStr(.Name, textbox)) > 0 Then
             .Value = valor
         End If
       End With
    Next ctl
ElseIf altera = "hide" Then
    For Each ctl In Me.Controls
        With ctl
         If (InStr(.Name, textbox)) > 0 Then
             .Visible = False
         End If
       End With
    Next ctl
End If
End Function

Может быть выполнено:

dim appendTxt as String:  appendTxt = "appended text"
dim ws as Worksheet:  for each ws in ActiveWorkbook.Worksheets
    dim shape as Shape:  for each shape in ws.Shapes
        if shape.Type = msoTextBox then
            'you can move this code parameterized to a separate function then as req by OP:
            with shape.TextEffect:  .Text = .Text & appendTxt
        end if
    next shape
next ws
Другие вопросы по тегам