Lỗi cú pháp VBA của Excel


0

Tôi đang cố gắng sử dụng mã sau đây tôi tìm thấy trên web nhưng nó dừng do lỗi cú pháp: xem bên dưới

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

Ai đó có thể tư vấn nguyên nhân của lỗi xin vui lòng?


Xóa ** ** khỏiFor k = 1 To j - 1
angelofdev

2
@angelofdev Tôi lấy những cái này **làm OP chỉ cho chúng tôi biết lỗi cú pháp là gì ... mà tôi có thể sao chép bằng cách dán mã của OP (không có **) trong VBE.
Mathieu Guindon

@MathieuGuindon bạn đúng - không phải là -
angelofdev

** ** đánh dấu thay thế bằng một bình luận.
Akina

Câu trả lời:


5

[...] Mã tôi tìm thấy trên web

For k = 1 To j  1

Nhân vật đó không phải là một -. Đừng chỉ sao chép-dán mã từ internet :)

Debug.Print Asc("–")
 150
Debug.Print Asc("-")
 45 

Chr$(150)không được công nhận MINUSbởi nhà phân tích cú pháp của VBA: mã thông báo không hợp lệ, do đó lỗi cú pháp.

FYI những Cellscuộc gọi không đủ tiêu chuẩn này hoàn toàn đề cập đến bất cứ điều gìActiveSheet ; bạn có thể muốn làm cho bảng mục tiêu của bạn rõ ràng hơn thế.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.