Eu estou tentando usar o seguinte código que encontrei na web, mas ele pára devido a um erro de sintaxe: veja abaixo
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
Alguém pode aconselhar causa de erro por favor?
microsoft-excel
vba
Baz
fonte
fonte
For k = 1 To j - 1
**
como o OP nos mostrando onde está o erro de sintaxe ... que eu posso replicar colando o código do OP (sem o**
's) no VBE.** **
marcas substituídas por um comentário.Respostas:
que
–
personagem não é um-
. Não basta copiar e colar o código da internet :)Chr$(150)
não é reconhecido como umMINUS
operador pelo analisador do VBA: o token é inválido, daí o erro de sintaxe.FYI estes não qualificados
Cells
chamadas estão implicitamente se referindo a qualquer que seja oActiveSheet
é; talvez você queira tornar sua planilha de destino mais explícita do que isso.fonte