Excel VBA 语法错误

0 vba microsoft-excel

我正在尝试使用我在网上找到的以下代码,但由于语法错误而停止:见下文

Sub TestCNR()
    Cnr 10, 4
End Sub
Sub Cnr(n, r)
    i = 1
    For j = 1 To r
        Cells(i, j).Value = j
    Next

    Do Until Finished(n, r, i)
        j = FindFirstSmall(n, r, i)
' The error occures in below line
        For k = 1 To j – 1           
            Cells(i + 1, k).Value = Cells(i, k).Value
        Next
        Cells(i + 1, j).Value = Cells(i, j).Value + 1
        For k = j + 1 To r
            Cells(i + 1, k).Value = Cells(i + 1, k - 1).Value + 1
        Next
        i = i + 1
    Loop
End Sub
Function Finished(n, r, i)
    Temp = True

    For j = r To 1 Step -1
        If Cells(i, j).Value <> j + (n - r) Then
            Temp = False
        End If
    Next
    Finished = Temp
End Function

Function FindFirstSmall(n, r, i)
    j = r
    Do Until Cells(i, j).Value <> j + (n - r)
        j = j - 1
    Loop
    FindFirstSmall = j
End Function
Run Code Online (Sandbox Code Playgroud)

有人可以告诉错误的原因吗?

Mat*_*don 5

[...] 我在网上找到的代码

For k = 1 To j – 1
Run Code Online (Sandbox Code Playgroud)

那个字符不是-. 不要只是从互联网上复制粘贴代码:)

Debug.Print Asc("–")
 150
Debug.Print Asc("-")
 45 
Run Code Online (Sandbox Code Playgroud)

Chr$(150)MINUSVBA 解析器未将其识别为运算符:令牌无效,因此出现语法错误。

仅供参考,这些不合格的Cells调用隐含地指的是任何东西ActiveSheet;你可能想让你的目标表比这更明确。