Vba 在文本框1中显示选定的单元格范围

Vba 在文本框1中显示选定的单元格范围,vba,excel,Vba,Excel,我在尝试显示从Excel到UserForm文本框(例如C1:E14)的选定单元格范围时遇到问题。下面的代码给我提供了一个运行时错误“13”类型不匹配的问题。: Private Sub CommandButton1_Click() Dim ActSheet As Worksheet Dim SelRange As Range Set ActSheet = ActiveSheet Set SelRange = Selection Range("TABLE").Select Application.G

我在尝试显示从Excel到UserForm文本框(例如
C1:E14)的选定单元格范围时遇到问题。
下面的代码给我提供了一个
运行时错误“13”类型不匹配的问题。

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
它会给出上述错误,但是如果我使用
。选择“True”
它会在用户表单文本框中打印。

注释是正确的。您正在尝试将范围设置为字符串

你可以用这样的东西把它变成一个范围

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)

这是一个由42个单独的细胞组成的范围。。。您想在文本框中显示什么?都是吗?如何分隔/显示?过去的一个类似问题和讨论:总结起来,不能使用包含多个单元格的
范围
对象的
(或
文本
)属性,除非将其分配给
变量类型的变量(因为它是一个数组)。为什么需要这样做?只是出于好奇。