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

9

我有一个重复的任务,希望用自动化方式代替每次使用=Concatenate函数。以下是我的代码:

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

很遗憾,这导致出现“编译错误:应为语句结尾”的错误,突出显示“ - ”。我该如何将文本“ - ”夹在这两个值之间?

6
您需要在&符号和引号之间加上空格,就像这样:Cells(2, 5).Value = Cells(2, 1).Value & " - " & Cells(2, 2).Value - Soulfire
3个回答

10

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

的意思是将第二行第一列和第二列的值连接起来,用" - "隔开,并将结果赋值给第二行第五列。这段代码涉及到Excel中单元格的操作。

5

@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文件中,只需使用此公式,选择要连接的单元格范围,并给它一个字符串(在本例中为“ - ”)放在它们之间。


2

针对需要帮助的人给出一个建议:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接