0

我在尝试显示从 Excel 到用户窗体文本框的选定单元格范围时遇到问题,说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 文本框中打印。

4

1 回答 1

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)
于 2012-10-29T15:26:29.997 回答