2016-12-08 18 views
0

私はゼロより大きい値だけを選択する必要があります。それはテキストと数字も持っています。ここではサンプルデータは、Excelのフィルタ - 自動化するVBA

Name Marks Remarks 
ab  90   Good 
bc  0   Bad 
cd  70   Average 
de  0   Bad 
fg didn'tattend Poor 

であり、私は私の出力はこのようになりVBAを使用したい、

Name Marks 
ab  90 
cd  70 

と出力は、同様に別のシート上にあります。何がこの要件のために最善であるかを親切に教えてください。

これらのデータを受け取り、上記の出力を生成するVBA SUBが必要です。やっています。しかし、そこには行かない。

私が試したコード、

一方
Private Sub OpenExcelFile_Click() 
Dim wb1 As Workbook 
Dim wb2 As Workbook 
Dim Sheet As Worksheet 
Dim PasteStart As Range 

Set wb1 = ActiveWorkbook 
Set PasteStart = [Control!A1] 

Sheets("Section1").Select 
    Cells.Select 
    Selection.ClearContents 

FileToOpen = Application.GetOpenFilename _ 
(Title:="Please choose the required file", _ 
FileFilter:="Report Files *.xls (*.xls),") 

If FileToOpen = False Then 
    MsgBox "No File Specified.", vbExclamation, "ERROR" 
    Exit Sub 
Else 
    Set wb2 = Workbooks.Open(Filename:=FileToOpen) 
    For Each Sheet In wb2.Sheets 
     With Sheet.UsedRange 
      .Copy PasteStart 
      Set PasteStart = PasteStart.Offset(.Rows.Count) 
     End With 
    Next Sheet 
End If 
    wb2.Close 

End Sub 

答えて

0

誰かがあなたのためのコードを書くことは難しいだろう、と新しい良いです一方、あなたがこれを簡単に行うことができます組み込みのExcelテーブル。データのセルの1つをクリックするだけで、[挿入]タブに移動し、[テーブルを挿入]を選択し、テーブルにヘッダーがあることを確認します。次に、各列にフィルタリングアイコンが表示され、「マーク」列を使用して「数値フィルタ」に移動し、「より大きい」または「等しい」を70を選択して、表示された結果を取得します。

+0

ありがとう@Ibo。わかった。 –

関連する問題