7

次のサブコードでは、それが行うこと(ハイパーリンクのサブストリングを置き換える)を特定の列に制限したいと思います。私は'*で、迅速な修正のための私の考えを書きました。しかし、範囲変数として保存されたセルの列値を取得するための良い方法を見つけることができないようです。

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
4

1 に答える 1

14

Columnプロパティを呼び出すだけです。

If MyCell.Column = 1 Then ...

これは絶対列 (スプレッドシートの列 A) であり、範囲の最初の列ではありません。

それが範囲の最初の列であるかどうかを確認したい場合は、最初に計算できます。

firstCol = yourRange.Cells(1, 1).Column
If MyCell.Column = firstCol Then ...
于 2012-08-09T10:57:09.950 に答える