VBA Excel: Impossible d'obtenir la propriété Correspondance de la classe WorksheetFunction

Je suis en train de faire une recherche de correspondance entre deux classeurs pour voir si un nom est entré dans Wbook1 est dans la colonne A de Wbook2. Par exemple... j'ai "nom1" dans la cellule D4 de classeur1... je veux la macro à la recherche d'Une colonne de workbook2 pour trouver où "nom1" est. Je ne suis pas inquiet au sujet du nom n'existant pas sur workbook2 comme cela devrait toujours être là.

À l'aide d'Excel 2007, le code est:

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

Si je supprime .WorksheetFunction, je reçois un "objet ou d'une application définie erreur". Comme le code des stands, j'ai "impossible d'obtenir la propriété correspondance de la classe worksheetfunction' erreur et je ne sais pas pourquoi.

Toute aide serait grandement appréciée. Merci!

  • Pourquoi VBA et excel pas de formule? Aussi pourquoi ne pas Vlookup?
  • À l'aide de VBA parce qu'il y a de sécurité les règles de validation que je vais finalement prendre en compte via VBA. À l'aide de Match au lieu de Recherchev parce que je vais être de retour l'ensemble de la ligne où le nom est situé. Les règles de validation existent parce que plusieurs personnes seront à l'aide de la macro pour rechercher des informations sur l'employé.
  • J'ai aussi oublié de mentionner que workbook2 sera dans un lecteur partagé, et je ne peux pas utiliser une formule excel pour exécuter le match, sauf si le classeur est ouvert. Je veux que ce classeur pour l'ouvrir sans être vu et besoin de VBA pour le faire.
InformationsquelleAutor Sam WB | 2013-04-19