Excel-VBA: Nicht in der Lage, um die Match-Eigenschaft des WorksheetFunction-Klasse

Ich versuche zu tun, die ein match suchen, zwischen zwei Arbeitsmappen, um zu sehen, wenn ein name eingegeben in Wbook1 ist in Spalte A der Wbook2. Zum Beispiel... ich habe "name1" in der Zelle D4 des workbook1... dann möchte ich das makro durchsucht Spalte A von workbook2 zu finden, wo "name1" ist. Ich bin nicht besorgt über den Namen nicht vorhandene workbook2, wie es sollte immer da sein.

Excel 2007 verwenden, der code ist:

Sub ViewData()
    Dim xlo As New Excel.Application
    Dim xlw As New Excel.Workbook
    Dim xlz As String
    Dim result As Double
    Dim SalesExec As String
    SalesExec = Range("d4").Value 'D4 contains the name from workbook1 I want to search for
    xlz = Range("y1").value  'This cell contains the file path for workbook 2
    Set xlw = xlo.Workbooks.Open(xlz) 'Path is correct as the desired workbook does open
    result = Application.WorksheetFunction.Match(SalesExec, xlo.Worksheets("Data").Range("A:A"), 0) 'Data is the sheet in workbook2 containing the list of names
    Range("Q14").value = result
    xlw.Save
    xlw.Close
    Set xlo = Nothing
    Set xlw = Nothing
End Sub

Wenn ich entfernen .WorksheetFunction, bekomme ich ein "Objekt-oder application-defined error'. Wie der code steht, habe ich das "nicht in der Lage, um die match-Eigenschaft des worksheetfunction-class" - Fehler und ich bin nicht sicher, warum.

Jede Hilfe wäre sehr geschätzt werden. Danke!

Warum VBA und nicht mit excel-Formel? Auch, warum nicht Vlookup?
Mit VBA, weil es Sicherheits-Validierung Regeln, die ich schließlich berücksichtigen, über VBA. Mit Match statt SVERWEIS, da werde ich wieder die gesamte Zeile, in der sich der name befindet. Die Validierung Regeln gibt es, weil es mehrere Personen mit dem makro zu suchen Informationen über die Mitarbeiter.
Ich habe auch vergessen zu erwähnen, dass workbook2 in einem freigegebenen Laufwerk, und ich kann nicht mit einer excel-Formel, die zur Ausführung der match-es sei denn, die Arbeitsmappe geöffnet ist. Ich möchte diese Arbeitsmappe öffnen, ohne dass Sie angezeigt und müssen mit VBA zu tun.

InformationsquelleAutor Sam WB | 2013-04-19

Schreibe einen Kommentar