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.
Vous devez vous connecter pour publier un commentaire.
De l'essayer. J'ai commenté le code de sorte que vous ne serez pas confrontés à un problème de compréhension.