2017-09-08 5 views
1

Je les lignes de code ci-dessous dans une boucle:Excel VBA: malheurs Hyperlink

Worksheets(mainsheet).Cells(BidItem, "K").Value = "Test " & BidItem 

Worksheets(mainsheet).Hyperlinks.Add Anchor:=Worksheets(mainsheet).Cells(BidItem, "L"), Address:="http://google.com", TextToAdd:="Test link" 

Au moment où cette exécute,

Dim mainsheet As String 
mainsheet = "Tester" 
BidItem = 6     ' (in this loop, it then counts to 7 and 8) 

Le résultat est que je vais obtenir "Test 6" K6, "Test 7" en K7, et "Test 8" en K8 - mais rien en L6, L7, L8. J'ai lu tous les stackexchange et autres forums que je peux trouver sur Hyperlinks.Add et je n'arrive pas à comprendre pourquoi cela ne fonctionne pas. Ça doit être quelque chose avec l'ancre: = mais je ne sais pas quoi. Quelle est mon erreur ici?

Répondre

0

N'utilisez pas On Error Resume Next lorsque vous essayez de déboguer votre code.

Dim bidItem As Long, mainsheet As String 

mainsheet = "sheet3" 

With Worksheets(mainsheet) 
    For bidItem = 6 To 9 
     .Cells(bidItem, "K").Value = "Test " & bidItem 
     .Hyperlinks.Add Anchor:=.Cells(bidItem, "L"), Address:="http://google.com", TextToDisplay:="Test link" 
    Next bidItem 
End With 

Remarque TextToDisplay pas TextToAdd. Cela aurait dû jeter une erreur.

+0

AH. J'utilisais On Error beaucoup plus tôt dans la boucle pour quelque chose et j'ai oublié de l'enlever. Je vous remercie! –

0

TextToAdd n'est pas un paramètre pour la méthode Hyperlinks.Add. Utilisez TextToDisplay à la place. See the MS method documentation.

Worksheets(mainsheet).Hyperlinks.Add Anchor:=Worksheets(mainsheet).Cells(BidItem, "L"), Address:="http://google.com", TextToDisplay:="Test link"