Вот что-то немного прямое. Если у вас уже есть TextBox и просто нужно добавить значения из диапазона ячеек:
Sub Test()
Dim srng As Range
Dim sWs As Worksheet: Set sWs = Sheets("Sheet1")
Set srng = sWs.Range("L1", sWs.Range("L" & sWs.Rows.Count).End(xlUp))
With Sheets("Sheet4").Shapes("Textbox 2").OLEFormat.Object
.Text = Join(Application.Transpose(srng), vbCrLf)
End With
End Sub
или если вы хотите, добавил он, как то, что Гэри отвечал:
Sub Test()
Dim sWs As Worksheet, dWs As Worksheet
Set sWs = Sheets("Sheet1"): Set dWs = Sheets("Sheet4")
Dim dRng As Range, sRng As Range
Set dRng = dWs.Range("A1:A10") 'change to suit
Set sRng = sWs.Range("L1", sWs.Range("L" & sWs.Rows.Count).End(xlUp))
With dWs.Shapes.AddTextbox(msoTextOrientationHorizontal, _
dRng.Left, dRng.Top, dRng.Width, dRng.Height).OLEFormat.Object
.Text = Join(Application.Transpose(sRng), vbCrLf)
End With
End Sub
Большое спасибо Гэри, это именно то, что я искал –
@JorgeMolano Check [accepting answer] (http://stackoverflow.com/help/someone-answers) как один из способов сказать «Спасибо» в Stackoverflow. Это также хорошо объяснено [здесь] (http://stackoverflow.com/tour). – L42