2012-08-09 20 views
6

En el siguiente subcódigo, quiero restringir lo que hace (reemplazar subcadena en hipervínculos) a una columna específica. He escrito en * * cuál es mi idea para una solución rápida. Pero no puedo encontrar una buena manera de obtener el valor de columna de una celda guardada como una variable de rango.obtener el índice de columna de un rango

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 

Respuesta

11

Usted puede simplemente llamar a la propiedad Column:

If MyCell.Column = 1 Then ... 

Esta es la columna absoluta (columna A de la hoja de cálculo), no es la primera columna del rango.

Si desea comprobar si se trata de la primera columna del rango, primero se puede calcular:

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

+ 1 Y sí .. Felicidades en 20k;) –

+0

respuesta correcta a la pregunta, pero no me ayudó en el caso específico. Pero podría haber encontrado otra forma de solucionarlo. Gracias por la ayuda :) –

+0

@SiddharthRout Yeaa ¡Gracias! No estás muy atrás ;-) – assylias

Cuestiones relacionadas