2016-12-16 2 views
0

私のコードの目的はユーザーの入力に基づいています。ユーザーの入力は、ユーザーがセルに入力した内容に基づいて自動的にハイパーリンクを作成します。VBAコードをどの範囲のセルに適用できますか?

ユーザーがhelloをセルに入力すると、ハイパーリンクが作成され、www.google.com/helloにリンクされます。

各セルには異なる入力があるので、私の範囲はちょうどhelloから他のユーザー入力にまで及ぶことが重要です。

私はこれを1つのセルにしか使えませんが、複数のセルにまたがって試してみると、ミスマッチエラーが発生し、セルが間違っているとか何かを参照していると考えられます。私はF2からF2:F4へのすべての範囲の参照を変更すると

Sub automaticHyperlink() 

Dim link As String 

link = "http://www.google.com/" & Range("F2") 

Range("F2").Hyperlinks.Add Range("F2"), link 

End Sub 

、私はエラーを取得:

は、ここに私のコードです。

私の質問は、エラーを発生させることなく、このコードを複数の範囲のセルに適切に適用する方法です。

質問がありましたら、お知らせください。

ありがとうございます。

答えて

2

まず、表示するテキストを独自のStringとして配置することをおすすめします。次に、範囲をループします。

Sub automaticHyperlink() 

Dim link As String, dispText As String 
Dim cel As Range 
Dim lastRow as Long 

lastRow = Cells(rows.count,6).End(xlup).Row 

For Each cel In Range("F2:F" & lastRow) 
    dispText = cel.value 
    link = "http://www.google.com/" & dispText 
    cel.Hyperlinks.Add anchor:=cel, Address:=link, TextToDisplay:=dispText 
Next cel 

End Sub 
+0

表示テキストはユーザーの入力にする必要があります。各セルは異なる入力を持つため、1つのセルを参照することはできません。私は、F列全体を範囲指定しようとすると、ミスマッチエラーが発生します。 – juiceb0xk

+0

@ juiceb0xk - 私の編集を参照してください。また、Range( "F:F") 'を実行することはお勧めしません。なぜなら、これは永遠に、おそらくエラーを投げる可能性があるからです。代わりに、私は編集されたコードにあるように、最後の行を見つけることをお勧めします。 – BruceWayne

+0

VBAで学ぶことがとても大変です。どうもありがとうございます。 – juiceb0xk

関連する問題