Ich versuche, Werte an Zellstandorten mit VBA nachzuschlagen, ich habe google und all over stackoverflow durchsucht, bevor ich das frage, weil ich nicht scheinen kann, es zu bekommen Arbeit.Excel, Trying Index, Match, nach Werten mit VBA suchen
Der folgende Code ist der Code, den ich verwenden möchte. Beachten Sie, dass budgetcode auf eine Zelle verweist, die einen der Codes in der ersten Spalte enthält. Mo verweist auf eine Zelle mit einer Nummer (1-12) oder einem Shortcode (Ytd, 1qtr, 2qtr, 3qtr). Beispiel ist, dass ich CAD-NS für Februar (2) ziehen möchte, und ich sollte 5666.40 bekommen.
Function eBudgetl(budgetcode As String, mo As String)
eBudgetl = Application.WorksheetFunction.Index(Range("Budget!G1:X5000"), _
Application.WorksheetFunction.Match(budgetcode, Range("Budget!B1:B5000"), 0), _
Application.WorksheetFunction.Match(mo, Range("Budget!G1:X1"), 0))
End Function
Hier ist ein Teil der Daten möchte ich Nachschlag:
1 2 3 4
CAD-NS I Net Sales 5264.0 5666.4 5614.9 5966.6
COSMAT E Material 6207.5 3660.0 3661.9 3560.9
COSDL E Direct Labor 610.4 105.3 167.1 123.6
CAD-MOIL E Indirect Labor 671.2 163.4 181.6 161.7
CAD-MOSAL E Salary Overhead 601.0 106.0 101.0 101.0
Hier ist der Code in der Zelle ist, die funktioniert, aber ich brauche in VBA zu tun. (Der Grund, warum ich in vba tun muß, ist manchmal die budgetcode enthält 2+ durch ein Komma getrennt Referenzen und ich werde vba verwenden, um sich zu trennen und jedes nachschauen unabhängig.)
=INDEX(Budget!$G$1:$X$5000,MATCH($F12,Budget!$B$1:$B$5000,0),MATCH(AN$1,Budget!$G$1:$X$1,0))
schätze ich Hilfe sehr, ich bin jetzt seit 3 Tagen dabei.
Danke,
Enoch
ich Ihr Problem denken sind die 'Typen' Ihrer Funktionsdeklaration.Probieren Sie 'Funktion eBudgetl (Budgetcode als Variante), mo als Variante) ' –
Oh mein Gott! Ich kann nicht glauben, dass das funktioniert hat! Ernsthaft, Chris Neilsen, du hast gerade meinen Tag gemacht! – user3566159
Als Antwort hinzugefügt, mit ein wenig Erklärung und ein paar Tipps –