2017-10-17 6 views
0

J'ai créé une macro pour indexer certaines valeurs entre deux feuilles. Cependant, même si la correspondance d'index fonctionne, elle n'imprime que le même résultat .. Je fournis cette partie du code avec l'ordre de correspondance d'index.Le résultat du résultat INDEX MATCH est toujours le même

For Each cell2 In ws1.Range("AE2:AE" & lastrow3) 
cell2.Formula = "=INDEX('Map'!H:H,MATCH('SAPBW_DOWNLOAD'!AD2,'Map'!G:G,FALSE))" 
Next cell2 
+1

Le match ' 'SAPBW_DOWNLOAD'! AD2' sera toujours le même –

Répondre

3

Vous n'avez pas besoin de boucle sur les cellules, pourquoi ne pas simplement utiliser cela?

ws1.Range("AE2:AE" & lastrow3).Formula = "=INDEX('Map'!H:H,MATCH('SAPBW_DOWNLOAD'!AD2,'Map'!G:G,FALSE))" 
+0

merci beaucoup !! Savez-vous comment je peux ajouter un .NumberFormat = 0 # dans cette ligne de code? –

+1

@PericlesFaliagas De rien! Oui, vous pouvez ajouter un format numérique après avoir inséré la formule comme ceci ... ws1.Range ("AE2: AE" & lastrow3) .NumberFormat = "0.00". Changez le format de nombre selon votre choix. – sktneer

2

Vous imprimez la même formule dans toutes les cellules. J'imagine que vous pourriez vouloir quelque chose comme ceci:

For Each cell2 In ws1.Range("AE2:AE" & lastrow3) 
    cell2.Formula = "=INDEX('Map'!H:H,MATCH('SAPBW_DOWNLOAD'!AD" & cell2.Row & ",'Map'!G:G,FALSE))" 
Next cell2 
+0

Ou remplissez-le peut-être ??? –

+0

parfait! Je vais accepter la réponse dans 5 minutes –

+1

@sktneer a une meilleure réponse. –