2017-09-14 4 views
0

Ok, je sais qu'il y a beaucoup de messages à ce sujet mais jusqu'à présent, aucun d'entre eux n'a une solution qui semble fonctionner pour moi.Erreur d'automatisation - L'objet invoqué s'est déconnecté des clients pendant l'autofiltre

J'ai couru pour la première fois il y a une semaine et j'ai créé un programme très simple pour essayer de comprendre ce qui se passe. J'ai eu recours à la main pour taper tout cela (je commence généralement avec une vieille macro et je la modifie ou je copie et passe les morceaux de code); J'ai fait mon propre fichier de données juste au cas où il y aurait quelque chose de bizarre dans le fichier que je prévois d'utiliser comme entrée; et encore des erreurs.

J'ai d'autres macros qui font exactement les mêmes processus et ils fonctionnent toujours bien. Cela me rend fou. Le code ci-dessous se bloque sur la ligne Autofilter.

Sub Fred() 
Dim strFileToOpen As String 
Dim wbHL7 As Workbook 
    strFileToOpen = Application.GetOpenFilename(Title:="Please select the Invoice file.", FileFilter:="Excel Files *.xls* (*.xls*),") 
    If strFileToOpen = "False" Then 
     MsgBox "No file selected.", vbExclamation, "Sorry!" 
     Exit Sub 
    Else 
     Set wbHL7 = Workbooks.Open(Filename:=strFileToOpen) 
    End If 
    rCnt = Cells(Rows.Count, 1).End(xlUp).Row 
    ActiveSheet.Range("A1:K" & rCnt).AutoFilter Field:=11, Criteria1:=0, Operator:=xlFilterValues 
    ActiveSheet.Range("A1:K" & rCnt).Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow.Delete 
    ActiveSheet.AutoFilterMode = False 
End Sub 

La plupart des autres postes font allusion qu'il pourrait y avoir un problème avec mon système actuel des choses telles que la compatibilité, mais alors pourquoi sont les autres macros de travail encore? En passant, une fois qu'il fait cela, il bloque tout ce qui concerne Excel et je dois ouvrir le gestionnaire des tâches pour tuer le processus. J'utilise Windows 7 et Office 2013.

Edit:

Je veux juste ajouter que si j'enregistrer une macro autofilter dans le même livre que les données, il fonctionne très bien.

Répondre

0

Vous avez une erreur dans votre code. Les critères doivent être une chaîne. Si vous regardez attentivement la macro enregistrée, vous verrez qu'elle utilise aussi une chaîne.

Changer votre ligne autofilter à ce qui suit et il devrait fonctionner:

ActiveSheet.Range("A1:K" & rCnt).AutoFilter Field:=11, Criteria1:="=0", Operator:=xlFilterValues 
+0

Eh bien, c'était assez simple. Si cela n'avait pas été un tel genre d'erreur "Vous avez vraiment foiré et rien ne va plus fonctionner", cela aurait été un peu plus facile à comprendre. – Jay

+0

@Jay typique erreur Micro $ oft folle pour vous. Je ne peux pas le comprendre. – robinCTS