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

时间:2015-07-09 20:08:59

标签: excel vba excel-vba 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
        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仅用于对象,所以我删除了它。现在我收到错误消息:

  

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

对于什么是错误的任何想法?

1 个答案:

答案 0 :(得分:0)

它的界限:

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

您试图从字符串中减去一个数字。我认为应该是

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

Symbols的长度中减去当出现编译错误时,它会突出显示错误所在的行。在我的例子中,它突出显示减号。