2017-04-26 37 views
1

我有一個從未以相同格式接收的工作簿。爲了防止人工干預,我需要捕獲文本employee所在的列。例如,如果文本在列O中 - 我將執行以下操作,但我需要基於包含的單元格更改Cells(i,"O")文字employee將變量設置爲標題文本列

Sub DoThis() 
Application.ScreenUpdating = False 
Dim i As Long 
For i = Range("A" & Rows.Count).End(3).Row To 2 Step -1 
    If Not IsEmpty(Cells(i, "O").Value) Then 
     'stuff here 
    End If 
Next i 
End Sub 
+0

標題總是「僱員」嗎?這是單元格中唯一的文字嗎? – Jordan

+0

@Jordan - 是我需要找到的標題文本始終是員工 – BellHopByDayAmetuerCoderByNigh

回答

3

可以使用Find方法和獲取employee被發現在Cells使用單元格的列:

Option Explicit 

Sub DoThis() 

    Dim i As Long 
    Dim lngCol As Long 

    With Worksheets("Sheet1") '<-- change to your sheet 
     lngCol = .Rows(1).Find("employee").Column '<-- assumes header in Row 1 
     For i = .Range("A" & .Rows.Count).End(3).Row To 2 Step -1 
      If Not IsEmpty(.Cells(i, lngCol).Value) Then 
       'stuff here 
      End If 
     Next i 
    End With 

End Sub 
1

使用find方法

Cells.Find("employee") 

這會找到指定的(這裏我用Cells但我想縮小這個下來到你的範圍)範圍內的單元格,它將返回包含文本「員工」的單元格。然後,您可以參考這個作爲Range對象即使用.Row得到行號或.Column得到列數