Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Excel VBA将单元格值和文本连接在一起?_Excel_Excel 2013_Vba - Fatal编程技术网

如何使用Excel VBA将单元格值和文本连接在一起?

如何使用Excel VBA将单元格值和文本连接在一起?,excel,excel-2013,vba,Excel,Excel 2013,Vba,我有一个重复的任务,我想自动化,而不是一直使用=Concatenate函数。以下是我目前的代码: Cells(2, 5).Value = Cells(2, 1).Value&" - "&Cells(2, 2).Value 不幸的是,这会导致“编译错误:预期:语句结束”错误,突出显示“-”。我怎样才能将文本“-”夹在这两个值之间呢?单元格(2,5)。Value=单元格(2,1)。Value&“-”&单元格(2,2)。Value@Joshua为您提供了一个答案。另一个更广泛的解决方

我有一个重复的任务,我想自动化,而不是一直使用=Concatenate函数。以下是我目前的代码:

Cells(2, 5).Value = Cells(2, 1).Value&" - "&Cells(2, 2).Value

不幸的是,这会导致“编译错误:预期:语句结束”错误,突出显示“-”。我怎样才能将文本“-”夹在这两个值之间呢?

单元格(2,5)。Value=单元格(2,1)。Value&“-”&单元格(2,2)。Value
@Joshua为您提供了一个答案。另一个更广泛的解决方案是我以前使用过的。请参见此处复制的UDF

Option Explicit
Function ConcatenateRow(rowRange As Range, joinString As String) As String
    Dim x As Variant, temp As String

    temp = ""
    For Each x In rowRange
        temp = temp & x & joinString
    Next

    ConcatenateRow = Left(temp, Len(temp) - Len(joinString))
End Function

然后,在excel文件中,只需使用以下公式,选择要连接的单元格范围,并给它一个字符串(在本例中为“-”)以将其放在它们之间。

对需要的人有一个建议:

Private Sub CommandButton1_Click()
Dim i As Long
Dim j As Long

Dim x As String

i = 1
j = Range("max").Value
x = Cells(i, 2)

For i = 2 To j

x = x & " - " & Cells(i, 2)

Next i

'MsgBox (x)

Range("d1").Value = x

i = 0

End Sub

在符号和引号之间需要空格,如:
单元格(2,5)。Value=单元格(2,1)。Value&“-”&单元格(2,2)。Value