在Textbox1中显示选定的单元格范围

时间:2012-10-29 12:13:27

标签: excel vba excel-vba

我在尝试将选定范围的单元格从Excel显示到UserForm文本框时遇到问题,比如说C1:E14.下面的代码给了我一个Runtime error '13' Type Mismatch

Private Sub CommandButton1_Click()
Dim ActSheet As Worksheet
Dim SelRange As Range
Set ActSheet = ActiveSheet
Set SelRange = Selection
Range("TABLE").Select
Application.Goto "TABLE"
UserForm1.TextBox1.Text = Range("C1:E14").Value
'UserForm1.TextBox1.Text = Range("C1:E14").Select
End Sub

如果我使用.Value,则会出现上述错误,但如果我使用.Select "True"则会在UserForm文本框中打印。

1 个答案:

答案 0 :(得分:0)

评论是正确的。您正尝试将范围设置为字符串。

你可以使用类似的东西把它变成一个范围

Public Function Join(seperator As String, rng As Variant) As String

    Dim cell As Variant
    Dim joinedString As String
    For Each cell In rng
        joinedString = joinedString & cell & seperator
    Next cell
    joinedString = Left(joinedString, Len(joinedString) - Len(seperator))
    Join = joinedString

End Function

然后

UserForm1.TextBox1.Text = Join(",",Range("C1:E14"))

或者如果您想从每个单元格中创建新行

Dim joinedString as string
joinedString  = Join("|",Range("C1:E14"))
UserForm1.TextBox1.Text = Replace(joinedString  , "|", vbCrLf)