2017-12-15 32 views
0

Ich versuche, den Referenzstandort einer Zelle zu ermitteln (der sich leicht ändern kann) und diese Position in einer gefilterten Liste eindeutiger Datensätze referenzieren, die automatisch aktualisiert wird Der Benutzer initialisiert das UserForm.Objekt erforderlich - 424 Fehler beim Versuch, den Wert auf einen Bereich zu setzen

Auf Blatt 9 (Helfer) Zelle AI2 gibt die absolute Position einer Zelle auf Blatt 1 (SA Payroll Dist Sheet) zurück. AI2 enthält die folgende Formel:

=CELL("address",INDEX('SA Payroll Dist Sheet'!B:B,MATCH(Helpers!AH2,'SA Payroll Dist Sheet'!B:B,0))) 

dann Zelle AJ2 schaut auf die letzten Ziffern des Wertes in AI2 mit:

=RIGHT(AI2,6) 

Dies korrekt den Wert

$ B 547 $ gibt (Welches ist die Zelle Referenz, die ich will)

Folgendes passiert, wenn ich versuche, das UserForm zu initialisieren:

Laufzeitfehler '424': Objekt erforderlich

Für Folgendes:

Dim ER As Range 

    'I want 'ER' to represent the value in AJ2 

Set ER = ActiveWorkbook.Sheets(9).Range("AJ2").Value 

    'Here's where debugger highlights yellow 


Worksheets("SA Payroll Dist Sheet").Range("$B$15:ER").Select 

    ' Is this even the proper way to refer to the range I am after? 
    ' In this case, the range would be ("$B$15:$B$457") 


Selection.Copy 
Sheet9.Range("AK2").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range _ 
    ("AK2"), Unique:=True 

    ' Here's where I want the list of unique records 
    ' in Sheet1.Range("$B$15:$B$457") to appear 

Der Debugger hebt die folgende Zeile:

Set ER = ActiveWorkbook.Sheets(9).Range("AJ2").Value 

Ich habe versucht:

Set ER = Sheet9.Range("AJ2").Value 

und

Set ER = Worksheets("Helpers").Range("AJ2").Value 

aber ich den gleichen Fehler. Ich denke, die Lösung dafür wird peinlich einfach sein, aber mir sind die Ideen ausgegangen. Ich habe versucht, Lösungen aus anderen Fragen zum gleichen Fehler, aber nichts scheint das Problem zu beheben, das ich habe.

+0

Willkommen bei Stack Overflow! Verwendet dies Excel VBA?Wenn ja, bitte markieren Sie die Frage als solche und mehr Experten können Ihre Frage und Hilfe finden. – Eric

+0

Danke Eric! Es verwendet Excel-VBA. Ich habe meinen Beitrag mit dem Tag aktualisiert, danke für den Vorschlag! – ArchNemisisPayroll

Antwort

0

ER ist eine Objekt- (Bereichs-) Variable, daher weisen Sie den Bereich der Variablen zu. Der Wert ist eine Eigenschaft der Variablen, sodass Sie auf diese Eigenschaft zugreifen können, wenn Sie sie benötigen (Value ist die Standardeigenschaft, daher müssen Sie sie nicht unbedingt angeben, aber es ist eine gute Vorgehensweise). Sie können den Wert eines Bereichs keiner Bereichsvariablen zuweisen.

Sie müssen auch die ER außerhalb der Anführungszeichen in der nächsten Zeile nehmen.

Nicht sicher, warum Sie versuchen, mit dem Select/Copy zu tun, also im Allgemeinen am besten verlassen, um Select zu vermeiden.

Sub x() 

Dim ER As Range 

'I want 'ER' to represent the value in AJ2 

Set ER = ActiveWorkbook.Sheets(9).Range("AJ2") 

'Here's where debugger highlights yellow 

Worksheets("SA Payroll Dist Sheet").Range("$B$15:" & ER.Value).Select 

    ' Is this even the proper way to refer to the range I am after? 
    ' In this case, the range would be ("$B$15:$B$457") 

Selection.Copy 
Sheet9.Range("AK2").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range _ 
    ("AK2"), Unique:=True 

End Sub 
+1

Danke SJR. Ihre Kommentare und Änderungen funktionieren perfekt. Ich habe den Arbeitscode als Antwort geschrieben, weil ich das hier nicht so ausdrücken kann. – ArchNemisisPayroll

0

Vielen Dank SJR, Ihre Kommentare und Änderungen führten mich zu einer funktionierenden Lösung!

Ich wusste nicht, wie Sie den Code in dem Kommentarabschnitt zu veröffentlichen, also hier ist, was ich am Ende mit:

Dim ER As Range 
Set ER = Sheet9.Range("AJ2") 
Sheet1.Range("$B$15:" & ER.Value).AdvancedFilter Action:=xlFilterCopy, 
CopyToRange:=Range _ 
    ("AK2"), Unique:=True 

Wie Sie sehen können, habe ich verweise auch den falschen Bereich („AK2“) in meiner Filterzeile, die ich nun auch korrigiert habe ("$ B $ 15:" & ER.Wert)

Verwandte Themen