2017-04-14 3 views
1

Ich möchte eine umfangreiche Reihe von Zeilen in Excel filtern und ihre Werte kopieren, ohne dass der Filter in Excel ausgeführt wird, nur in VB-Code ohne visuelle Aktion in Excel. Dieses Verfahren ist sehr langsam, ich will eine flexiblere Alternative:Filtern von Excel-Zeilen im ausgeblendeten Modus (VB-Code)

' 
     xlSheet.Range("A1:Z100000").AutoFilter(1, "Criteria", , , False) 

     xlSheet.Range("C1:F100000").Copy() 

     xlSheet2.Range("A1").PasteSpecial(Paste:=XlPasteType.xlPasteValues, Operation:=XlPasteSpecialOperation.xlPasteSpecialOperationNone, SkipBlanks:=False, Transpose:=False) 

     Application.CutCopyMode = CType(False, XlCutCopyMode) 

     xlSheet.Range("A1:Z100000").AutoFilter(False) 
' 

Irgendwelche Vorschläge? Vielen Dank !

+1

Vorschläge: 1) Verwenden Sie ActiveX Data Object (ADO), siehe [Verwenden von ADO zum Abfragen einer Excel-Tabelle] (https://technet.microsoft.com/de-de/library/ee692882 .aspx). 2) Verwenden Sie den erweiterten Filter von Excel. 3) Bestimmen Sie die Zeilenanzahl mit COUNTIF(), resimieren Sie das resultierende Array, füllen Sie das resultierende Array zeilenweise, fügen Sie das resultierende Array ein. –

Antwort

-1

Ich mag würde diesen Kodex für die Ausstellung vorzuschlagen ,,

Sub Exception_Review()

Application.ScreenUpdating = False Dim FilterCriteria Dim CurrentsheetName As String Dim NewFileName As String ‚Lesen Sie die aktuelle Blätter Namen CurrentheetName = ActiveSheet.Name Bereich ("A2: K25"). Wählen Sie Selection.AutoFilter Selection.AutoFilter Feld: = 13, Criteria1: = "Nein" Selection.SpecialCells (xlCellTypeVisible) .Wählen Sie Selection.Copy Worksheets.Add ActiveSheet. Name = "ExceptionReview" Bereich ("A1"). Wählen Sie ActiveSheet.Paste.Application.CutCopyMode = False Cells.Select Selection.Columns.AutoFit Range ("A1") auswählen (CurrentsheetName) .Activate Selection.AutoFilter Feld: = 1 Selection.AutoFilter
Range ("A1") Anwendung auswählen. .ScreenUpdating = True End Sub

+0

Ihre Antwort benötigt etwas Formatierung, sonst ist sie fast nicht lesbar. –

+0

Ich bedauere die Unannehmlichkeiten, tatsächlich habe ich Ihre Anfrage mit meinem Handy beantwortet, wahrscheinlich ist es der Grund hinter unsachgemäßer Formatierung. –