2016-09-13 4 views
0

Ich versuche, ein Arbeitsblatt (über Spalte DL) zu filtern. Ich muss dann eine Formel in Spalte DQ einfügen, aber nur für die sichtbaren Zellen. Ich habe zuvor den Code unten verwendet, der funktioniert, außer dass ich nicht den spezifischen Verweis auf Zelle DQ3 möchte. Diese Zelle kann sich ändern und somit wird die falsche Formel kopiert und eingefügt.Makro, um Daten zu filtern und Formel dann in sichtbare Zellen einzufügen

Dim LastRow As Long 
Dim FinalRow As Long 

LastRow = Range("B" & Rows.Count).End(xlUp).Row 
Range("DL2:DL" & LastRow).AutoFilter Field:=116, Criteria1:= _ 
    "ABC" 

Range("DQ3").Copy 

FinalRow = Cells(Rows.Count, "B").End(xlUp).Row 
Range("DQ3:DQ" & FinalRow).Select 
ActiveSheet.Paste 

habe ich versucht, den Code unten, aber es gibt eine „Laufzeitfehler‚1004‘: Anwendungs ​​definiert oder Objekt definierte Fehler auf der letzten Codezeile:

Dim LastRow As Long 
Dim FinalRow As Long 

LastRow = Range("B" & Rows.Count).End(xlUp).Row 

Range("DL2:DL" & LastRow).AutoFilter Field:=116, Criteria1:= _ 
    "ABC" 

FinalRow = Range("B" & Rows.Count).End(xlUp).Row 
Range("DQ2:DQ" & FinalRow).FormulaR1C1 = "=(RC[-1]-RC[-2])" 

ich auch versucht, dieser Code:

Dim LastRow As Long 
Dim FinalRow As Long 


LastRow = Range("B" & Rows.Count).End(xlUp).Row 

Range("DL2:DL" & LastRow).AutoFilter Field:=116, Criteria1:= _ 
    "ABC" 


FinalRow = Range("B" & Rows.Count).End(xlUp).Row 
Set RNG = Range("DQ2:DQ" & FinalRow).SpecialCells(xlCellTypeVisible) 

RNG = "=(RC[-1]-RC[-2])" 

Dies läuft ohne Fehler füllt aber nicht alle Daten in Spalte DQ

An. y Vorschläge, wie Sie den Fehler beseitigen oder mein ursprüngliches Ziel erreichen können? Ich bin mir nicht sicher, was ich versuche, wird sogar funktionieren, aber hier bin ich steckengeblieben.

Danke!

Antwort

0

Ich konnte mein Ziel mit dem folgenden Code erreichen. Buchung für den Fall, dass jemand anderes das gleiche Problem in der Zukunft hat.

With ActiveSheet.Range("DQ2:DQ" & Cells(Rows.Count,2).End(xlUp).Row).SpecialCells(xlCellTypeVisible) 
    .Cells.FormulaR1C1 = "=((RC[-1]-RC[-2])"` 
    .Cells.FillDown` 
    Worksheets("WorksheetName").Columns(10).Calculate 

End With 

Prost!

Verwandte Themen