2012-08-09 7 views
6

次のサブコードでは、その機能(ハイパーリンクの部分文字列を置き換える)を特定の列に限定したいと考えています。私は素早く修正するために私のアイデアを書いています。しかし、私はは、Range変数として保存されたセルの列の値を取得するための良い方法を見つけることができないようです。範囲の列インデックスを取得

Dim MyDoc As Worksheet 
Dim MyCell As Range 
    ... 
     For Each MyCell In MyDoc.UsedRange 
      If MyCell.Hyperlinks.Count > 0 Then 
       '* if mycell's columnnumber = 1 then 
        LinkURL = MyCell(1).Hyperlinks(1).Address 
        FindPos = InStr(1, LinkURL, FindString) 
        If FindPos > 0 Then 'If FindString is found 
         ReplaceLen = Len(FindString) 
         URLLen = Len(LinkURL) 
         PreStr = Mid(LinkURL, 1, FindPos - 1) 
         PostStr = Mid(LinkURL, FindPos + ReplaceLen, URLLen) 
         NewURL = PreStr & ReplaceString & PostStr 
         MyCell(1).Hyperlinks(1).Address = NewURL 'Change the URL 
        End If 
       '* End if 
      End If 
     Next MyCell 

答えて

11

あなたは、単にColumnプロパティを呼び出すことができます。

If MyCell.Column = 1 Then ... 

これは絶対的な列(スプレッドシートの列A)、ない範囲の最初の列です。

あなたはそれが範囲の最初の列であるかどうかを確認したい場合は、あなたが最初にそれを計算することができます:20K上

firstCol = yourRange.Cells(1, 1).Column 
If MyCell.Column = firstCol Then ... 
+0

+ 1とはい...おめでとうを;)質問に対する –

+0

正解はなく、特定のケースで私を助けなかった。しかし、私はそれを修正する別の方法を見つけた可能性があります。 Thxの助けを借りて: –

+0

@SiddharthRout Yeaaありがとう!あなたは遠く離れていません;-) – assylias

関連する問題