VBA仅选择第一个可见行
我知道使用Select是不好的 当自动筛选后返回多个结果时,我尝试仅从第一行中选择单元格。我已经使用VBA仅选择第一个可见行,vba,excel,Vba,Excel,我知道使用Select是不好的 当自动筛选后返回多个结果时,我尝试仅从第一行中选择单元格。我已经使用xlCellTypeVisible复制了所有可见的行,但是我不确定如何在第一个过滤行的C和D列中选择单元格。我将从activecellOffset行之前的第二个自动过滤器中获取值 For i = 2 To k Sheets("Database").Select ActiveSheet.Range("$A$1:$C" & k).AutoFilter Field:=2, Cri
xlCellTypeVisible
复制了所有可见的行,但是我不确定如何在第一个过滤行的C和D列中选择单元格。我将从activecellOffset行之前的第二个自动过滤器中获取值
For i = 2 To k
Sheets("Database").Select
ActiveSheet.Range("$A$1:$C" & k).AutoFilter Field:=2, Criteria1:= _
Worksheets("SoPhiH").Range("A" & i).Value, Operator:=xlAnd
Sheets("Database").Select
ActiveSheet.Range("$A$1:$R" & k).AutoFilter Field:=5, Criteria1:= _
Worksheets("SoPhiH").Range("C" & i).Value, Operator:=xlAnd
Sheets("Database").Select
If Application.WorksheetFunction.Subtotal(3, Range("A2:A" & k)) Then ' If the cell is blank copy and paste, else do nothing
Else
ActiveSheet.Range("$A$1:$C" & k).AutoFilter Field:=2
ActiveSheet.Range("$A$1:$C" & k).AutoFilter Field:=5
Sheets("SoPhiH").Select
ActiveSheet.Range("A" & i).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Database").Select
Range("B" & Rows.Count).End(xlUp).Offset(1).Select
ActiveSheet.Paste
UWI = ActiveCell.Value
ActiveSheet.Range("$A$1:$C" & k).AutoFilter Field:=2, Criteria1:= _
UWI, Operator:=xlAnd
ActiveCell.Offset(0, 3) = Worksheets("SoPhiH").Range("C" & i)
ActiveCell.Offset(0, 17) = Worksheets("SoPhiH").Range("B" & i)
End If
Next i
许多用于操纵常规范围的相同方法可用于特殊单元格创建的范围
with ActiveSheet.Range("$A$1:$C" & k)
.AutoFilter Field:=2, Criteria1:=UWI
with .offset(1, 0)
.specialcells(xlcelltypevisible).offset(0, 2).resize(1, 2).select
end with
end with
如果处理的不止第一行,则必须使用Areas my属性