将一系列单元格转换为字符串的最佳方法是什么?我有一个函数只接受一个字符串作为输入所以我需要将范围转换为字符串,同时保留尽可能多的格式(即它需要看起来像一个表或列表,而不仅仅是一串字符) .我尝试过使用CStr(),以及从一个范围转换为一个数组然后转换为一个字符串,但我只是得到了错误.
编辑:代码尝试
Dim email_answer As Integer email_answer = MsgBox("Do you want to be emailled a copy of this schedule?", vbYesNo) If email_answer = vbYes Then Dim wb As Workbook Dim to_send As Range to_send = Range("D3", "D10") If Val(Application.Version) < 14 Then Exit Sub Set wb = ActiveWorkbook With wb MailFromMacWithMail body content:=CStr(to_send), _ mailsubject:="Schedule", _ toaddress:="email address", _ ccaddress:="", _ bccaddress:="", _ attachment:=.FullName, _ displaymail:=False End With Set wb = Nothing End If
Wolfie.. 6
要在范围内以逗号分隔的单元格值列表:
Function RangeToString(ByVal myRange as Range) as String RangeToString = "" If Not myRange Is Nothing Then Dim myCell as Range For Each myCell in myRange RangeToString = RangeToString & "," & myCell.Value Next myCell 'Remove extra comma RangeToString = Right(RangeToString, Len(RangeToString) - 1) End If End Function
如果行号增加,您可以添加额外的功能,例如插入分号而不是逗号.
要使用此功能:
Sub AnySubNameHere() Dim rng As Range Set rng = ActiveSheet.Range("A3:A10") Dim myString as String myString = RangeToString(rng) End Sub
user3598756.. 5
你可以使用这个功能:
Function Rang2String(rng As Range) As String Dim strng As String Dim myRow As Range With rng For Each myRow In .Rows strng = strng & Join(Application.Transpose(Application.Transpose(myRow.value)), "|") & vbLf Next End With Rang2String = Left(strng, Len(strng) - 1) End Function
它将返回一个带换行符的字符串作为范围行分隔符和管道("|")作为列分隔符
要在范围内以逗号分隔的单元格值列表:
Function RangeToString(ByVal myRange as Range) as String RangeToString = "" If Not myRange Is Nothing Then Dim myCell as Range For Each myCell in myRange RangeToString = RangeToString & "," & myCell.Value Next myCell 'Remove extra comma RangeToString = Right(RangeToString, Len(RangeToString) - 1) End If End Function
如果行号增加,您可以添加额外的功能,例如插入分号而不是逗号.
要使用此功能:
Sub AnySubNameHere() Dim rng As Range Set rng = ActiveSheet.Range("A3:A10") Dim myString as String myString = RangeToString(rng) End Sub
你可以使用这个功能:
Function Rang2String(rng As Range) As String Dim strng As String Dim myRow As Range With rng For Each myRow In .Rows strng = strng & Join(Application.Transpose(Application.Transpose(myRow.value)), "|") & vbLf Next End With Rang2String = Left(strng, Len(strng) - 1) End Function
它将返回一个带换行符的字符串作为范围行分隔符和管道("|")作为列分隔符