2017-12-21 3 views
0

Ich habe ein Problem mit meinem Code. Ich führe einen einfachen VBA-Code mit Benutzerformular aus und in einem Arbeitsblatt der Arbeitsmappe führe ich meine Formel in einem bestimmten Bereich in bestimmten Spalten aus. Irgendwie, und ich weiß nicht warum, läuft der Code auf diesen Zeilen ohne einen Fehler, aber die Zellen bleiben wie es war ohne Formel, wenn der Code endet. Wenn jemand mich hier in den Spalten AC und AD analysieren könnte, wäre ich dankbar.VBA Dynamic Range Formula nicht im Bereich

hier die spezifischen Code-Zeilen, das Problem nur mit Spalten AC, AD:

VLR = MainWB.Worksheets(2).Cells(Rows.Count, "A").End(xlUp).Row 

With MainWB.Worksheets(5) 
    UniqueLRow = .Cells(Rows.Count, "E").End(xlUp).Row 
End With 

'Column AC 
With MainWB.Worksheets(2) 
    .Range("AC2").Activate 
    .Range("AC2:AC" & VLR).FormulaR1C1 = "=IF(COUNTIF(Unique!R2C5:R " & UniqueLRow & " C5,visual!RC[-2]),1,"""")" 
End With 

HourLR = MainWB.Worksheets(6).Cells(Rows.Count, "E").End(xlUp).Row 

'Column AD 
With MainWB.Worksheets(2) 
    .Range("AD2:AD" & VLR).FormulaR1C1 = "=IF(COUNTIF(HourCommissions!R2C5:R " & HourLR & " C5,visual!RC[-3])>0,1,"""")" 
End With 
+0

Haben Sie Debug-Code versuchen 'F8' mit und durch sie Schritt. Es ist gut, '.select' hinzuzufügen, um zu sehen, was es ausführt. –

+0

Verwenden Sie 'On Error Resume Next' irgendwo vor dem Code, den Sie in der Beschreibung gezeigt haben? – sktneer

Antwort

1

Geben Sie diesen einen Versuch und sehen, ob das Ihr Problem behebt ...

With MainWB.Worksheets(2) 
    .Range("AC2", "AC" & VLR).FormulaR1C1 = "=IF(COUNTIF(Unique!R2C5:R" & UniqueLRow & "C5,visual!RC[-2]),1,"""")" 
End With 
1

hier;

.Range("AD2").AutoFill Destination:=Range("AB2:AB" & VLR), Type:=xlFillDefault 

Ziel ist der Bereich, in aktivem Blatt. Es wird funktionieren, wenn es nur Arbeitsblatt (2) ist. Willst du das oder vergiss einfach Punkt vor Range?

+0

ich habe Punkt hinzugefügt und es funktioniert immer noch nicht –

+0

hast du irgendeine Fehlermeldung? – MarcinSzaleniec

+0

ja ich benutze bei Fehler resume next am Anfang des Codes einmal. um es zu löschen? –