我正在使用的工作表中填充了两个单元格,一个填充Total
,另一个填充value
。它们彼此相邻。我的目标是抓住Total
并打印value
。因为我不想知道他们的特定单元格地址所以我创建了一个循环并完成了这项工作。我是使用.SpecialCells(xlCellTypeLastCell)
完成的。现在,我想使用.UsedRange
。
我的问题是:我怎样才能使用.UsedRange
执行相同的操作(创建循环)。
这是我尝试过(工作过):
Sub FindTotalValue()
Dim rng As Range, cel As Range
'Set rng = ActiveSheet.UsedRange
'For Each cel In rng.Row
For Each cel In Range("A1", Range("A1").SpecialCells(xlCellTypeLastCell))
If InStr(cel.Value, "Total") > 0 Then MsgBox cel.Offset(0, 1).Value
Next cel
End Sub
由于我对使用.usedrange
方法创建循环一无所知,所以我只是在脚本中对它们进行了评论。
答案 0 :(得分:2)
尝试一下:
Sub FindTotalValue()
Dim rng As Range, cel As Range
For Each cel In ActiveSheet.UsedRange.Cells.SpecialCells(2)
If InStr(cel.Value, "Total") > 0 Then MsgBox cel.Offset(0, 1).Value
Next cel
End Sub
它假设包含" Total"是一个常数,而不是一个公式:
您还应该调查使用 Find()而不是循环。
修改#1:强>
根据香蕉的建议:
Sub FindTotalValue()
Dim rng As Range, cel As Range
For Each cel In ActiveSheet.UsedRange.Cells.SpecialCells(2)
If InStr(cel.Value, "Total") > 0 Then
MsgBox cel.Offset(0, 1).Value
Exit For
End If
Next cel
End Sub
修改#2:强>
使用 Find():
Sub FindTotalValueQuickly()
MsgBox Cells.Find(what:="Total", lookat:=xlPart).Offset(0, 1).Value
End Sub