Vba 编译错误-所需变量can';不能分配给这个表达式

Vba 编译错误-所需变量can';不能分配给这个表达式,vba,excel,compiler-errors,Vba,Excel,Compiler Errors,下面是我正在复制的代码: Private Sub btnRefresh_Click() Dim W As Worksheet: Set W = ActiveSheet Dim Last As Integer: Last = W.Range("A100").End(xlUp).Row If Last = 1 Then Exit Sub Dim Symbols As String Dim i As Integer For i = 2 To Last

下面是我正在复制的代码:

Private Sub btnRefresh_Click()
    Dim W As Worksheet: Set W = ActiveSheet
    Dim Last As Integer:  Last = W.Range("A100").End(xlUp).Row
    If Last = 1 Then Exit Sub
    Dim Symbols As String
    Dim i As Integer
    For i = 2 To Last
        Symbols = Symbols & W.Range("A" & i).Value & "+"
    Next i
    Symbols = Left(Symbols, Len(Symbols - 1))
    Debug.print Last 
    Debug.print Symbols
End Sub
我很确定问题在第三行。我最初写的

Dim Last as Integer: Set Last = W.Rang("A100").End(xlUp).Row
我意识到
Set
仅用于对象,因此我将其删除。现在我收到错误消息:

编译错误。所需变量无法分配给此表达式

有什么问题吗?

这是一句话:

Symbols = Left(Symbols, Len(Symbols - 1))
您试图从字符串中减去一个数字。我想应该是这样

Symbols = Left(Symbols, Len(Symbols) - 1)

若要从编译错误中减去
符号的长度,它将突出显示错误所在的行。在我的例子中,它突出显示了减号。

代码知道什么是
符号吗?你有
Symbols=Symbols&..
代码怎么知道“Symbols”是什么?它没有说Rang。索比根的回答奏效了。当我将符号打印到即时窗口时,它会打印出它应该做的事情,即列的每个单元格中的信息加上“+”,这就是它了,谢谢!出于某种原因,第一行“Private Sub btnRefresh_Click()”被突出显示,因此我不得不猜测。第一次使用Excel VBA时,您还没有最好的直觉