2016-04-27 54 views
0

我正在一個用戶表單上工作,其中我點擊一個按鈕,當我點擊它時我得到一個輸入框,我嘗試過濾該列(E)的數據,然後過濾後數據從科拉姆A1複製,直到在我使用這個代碼的代碼另一片caaled filtred_data在E欄過濾值,但它給我的錯誤不NW如何解決它VBA-使用輸入框來過濾和複製數據

Private Sub CommandButton9_Click() 
Dim xno As Integer, Found As Range 
Do 
    xno = Application.InputBox("Enter the number of Top communities ", Type:=1) 
    If TypeName(xno) = "Boolean" Then Exit Sub 
    Set Found = Columns("E").Find(what:=xno, lookat:=xlWhole, LookIn:=xlValues) 
    If Found Is Nothing Then 
     MsgBox "the number was not found, please try again !!", vbInformation 
    Else 
     Found.Range("A1:F10000").Copy Destination:=Sheets("filtred_data").Range("A1:F10000") 
    End If 
Loop 
End Sub 

如果有人能幫助我,請,謝謝

+0

你得到的錯誤是什麼?另外,你提到你的工作表是'filtered_data',但你的代碼顯示'filtred_data' –

+0

我得到的錯誤是運行時錯誤9下標超出範圍 – mateos

+0

關於工作表的名稱只是把它錯了我的錯:D – mateos

回答

0

您的情況的問題是,您正在使用Find方法將Found變量設置爲單個單元格。後來在您的代碼中,當您編寫Found.Range("A1:F1000")時,您試圖複製該ONE單元的A1:F10000

從本質上講,你的代碼看起來是這樣的(假設Found引用單元格E25):

Range("E25").Range("A1:F1000").Copy 

你就明白爲什麼這會導致錯誤?

我試圖提供更多的幫助,但很難確切地確定你想要什麼。你能否提供關於電子表格佈局的更多細節,以及你想要發生什麼的例子?

+0

是的,你是對的, 在我正在過濾的表中,我有5列但我只想過濾最後一列這是列E所以在點擊按鈕過濾後,我需要將所有列從A複製到E,但只將過濾的數據複製到新工作表「filtred_data」 – mateos