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时,您还没有最好的直觉