我正在尝试编写一个vba以隔离一行中的特定单元格。到目前为止,我的代码使我进入了活跃的单元,从这里开始,我被困住了。 我需要的单元格将始终是该行中的第三个非空白/空单元格。在活动单元格和所需单元格之间是空白单元格,以及两个不相关的非空白/空单元格。 它们之间的间距不是固定的,因此我无法抵消一定数量的单元格。 我已经获得了一定程度的帮助,但是现在我陷于困境,任何帮助将不胜感激!
i = 1
For Each cell In ws.Rows(ActiveCell.Row).Cells
If Not IsEmpty(cell) = True Then i = i + 1
If i = 4 Then cell.Select: Exit For
Next cell
答案 0 :(得分:0)
您不应该使用ActiveCell和。看看是否有帮助:
Sub thirdNonBlank()
Dim ws As Worksheet: Set ws = ActiveWorkbook.Sheets("sheet name")
Dim lRow As Long: lRow = ws.Cells(Rows.Count, 1).End(xlUp).Row
Dim C As Long, cnt As Long
Dim rngCellFind As Range
With ws.Range("A1:A" & lRow)
Set rngCellFind = .Find( _
What:="Hello", _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext _
).Offset(1, 0)
End With
For C = 1 To ws.Cells(rngCellFind.Row, Columns.Count).End(xlToLeft).Column
If Not IsEmpty(ws.Cells(rngCellFind.Row, C)) Then cnt = cnt + 1
If cnt = 3 Then
ws.Cells(rngCellFind.Row, C).Select 'I'd advise against using .Select
Exit For
End If
Next C
End Sub
编辑:根据OP新输入进行了更改。