Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA仅选择第一个可见行_Vba_Excel - Fatal编程技术网

VBA仅选择第一个可见行

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

我知道使用Select是不好的

当自动筛选后返回多个结果时,我尝试仅从第一行中选择单元格。我已经使用
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属性