我有一个从未以相同格式收到的工作簿。为了防止手动干预,我需要捕获文本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 :(得分: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 :(得分:1)
使用find
方法
Cells.Find("employee")
这将找到指定范围内的单元格(此处我使用Cells
但我将其缩小到您的范围)并返回包含文本“employee”的单元格。然后,您可以将其引用为Range
对象,即使用.Row
获取行号或.Column
获取列号