2017-09-14 57 views
0

好吧,我知道有很多關於此的帖子,但到目前爲止,他們沒有一個似乎適用於我的解決方案。自動化錯誤 - 在自動篩選器中調用的對象與客戶端斷開

我在一週前第一次碰到了這個問題,並且創建了一個非常簡單的程序來試圖弄清楚發生了什麼。我使用手工輸入所有這些(我通常從一箇舊的宏開始,修改它或複製和過去的代碼片斷);我已經創建了自己的數據文件,以防萬一我打算用作輸入的文件有些奇怪,它仍然錯誤。

我有其他的宏正在做同樣的過程,他們仍然工作正常。這讓我瘋狂。下面的代碼在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 

許多其他職位的暗示,有可能是與我的實際系統問題,例如兼容性的事情,但爲什麼是其他的宏還工作嗎?順便說一下,一旦這樣做,它基本上鎖定了所有與Excel有關的事情,我必須打開任務管理器來終止該進程。我使用的是Windows 7和Office 2013

編輯:

我只想補充一點,如果我在同一本書記錄自動篩選宏的數據,它工作正常。

回答

0

您的代碼有錯誤。標準需要是一個字符串。如果仔細觀察錄製的宏,您會發現它也使用了一個字符串。

您自動篩選行更改爲以下,它應該工作:

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

嗯,這是非常簡單的。如果它不是這樣的「你真的搞砸了,什麼都不會再起作用了」那樣的錯誤,那麼弄清楚會更容易一些。 – Jay

+0

@Jay典型的瘋狂Micro $ oft錯誤對你而言。我無法理解它。 – robinCTS

相關問題