Olá! Estou a tentar programar uma macro em VBA que corra a linha A, encontre o campo "Pagador" e devolva o número de valores diferentes presentes na respetiva coluna. No entanto, quando corro a macro o excel bloqueia e penso que entra em loop infinito e não consigo perceber porquê. Alguém me consegue ajudar? O código que estou a usar é:
Private Sub CommandButton2_Click()
Dim scol As New Collection
Dim MyAr As Variant
Dim x As Long
Dim z As Integer
If ActiveCell.Value = "Pagador" Then
With Sheets("AUX")
C = Cells(Rows.Count, ActiveCell.Column).End(xlUp).Row
A = ActiveCell.Offset(1, 0)
B = ActiveCell.Offset(C, 0)
MyAr = .Range("A:B").Value
For i = 1 To UBound(MyAr)
On Error Resume Next
scol.Add MyAr(i, 1), Chr(34) & _
MyAr(i, 1) & Chr(34)
On Error GoTo 0
Next i
End With
x = scol.Count
Else
ActiveCell.Offset(0, 1).Select
Pergunta
VanOliveira
Olá! Estou a tentar programar uma macro em VBA que corra a linha A, encontre o campo "Pagador" e devolva o número de valores diferentes presentes na respetiva coluna. No entanto, quando corro a macro o excel bloqueia e penso que entra em loop infinito e não consigo perceber porquê. Alguém me consegue ajudar? O código que estou a usar é:
Private Sub CommandButton2_Click()
Dim scol As New Collection
Dim MyAr As Variant
Dim x As Long
Dim z As Integer
Sheets("Aux").Activate
Sheets("Aux").Range("A1").Select
Do While ActiveCell.Value <> ""
If ActiveCell.Value = "Pagador" Then
With Sheets("AUX")
C = Cells(Rows.Count, ActiveCell.Column).End(xlUp).Row
A = ActiveCell.Offset(1, 0)
B = ActiveCell.Offset(C, 0)
MyAr = .Range("A:B").Value
For i = 1 To UBound(MyAr)
On Error Resume Next
scol.Add MyAr(i, 1), Chr(34) & _
MyAr(i, 1) & Chr(34)
On Error GoTo 0
Next i
End With
x = scol.Count
Else
ActiveCell.Offset(0, 1).Select
End If
Loop
Sheets("Customer").Range("C32") = x
End Sub
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.