Как назначить значение ячейки из фильтрованного поиска? - PullRequest
0 голосов
/ 03 июля 2019

Я пытаюсь вычесть даты, используя цикл do while в отфильтрованных критериях, но я не знаю, как получить ячейку отфильтрованных строк.

Я пытался использовать .SpecialCells (xlCellTypeVisible)

Dim i As Integer
    i = 0
    k = 8
    Dim holder As Long
    ActiveSheet.Range("$G$9:$G$332").AutoFilter Field:=7, Criteria1:= _
        "AP"
    ActiveSheet.Range("$O$9:$O$332").AutoFilter Field:=15, Criteria1:= _
        "Released"

    Do While 79 > i


        i = i + 1
        k = k + 1
        ' ** Cells(k,"S") ** Is the problem
        holder = Cells(k, "S").SpecialCells(xlCellTypeVisible).Select

        Application.CutCopyMode = False
        ActiveCell.FormulaR1C1 = "=RC[-6]-RC[-11]"


    Loop

Я ожидаю, что результат будет вычитаться только в пределах отфильтрованных критериев.

1 Ответ

0 голосов
/ 03 июля 2019

Попробуйте:

Dim i As Integer

i = 0
k = 8

Dim holder As Long

ActiveSheet.Range("$A$9:$S$332").AutoFilter Field:=7, Criteria1:="AP"
ActiveSheet.Range("$A$9:$S$332").AutoFilter Field:=15, Criteria1:="Released"

Do While 79 > i


    i = i + 1
    k = k + 1

    If Not Intersect(ActiveSheet.Range("S" & k), ActiveSheet.Range("$A$9:$S$332").SpecialCells(xlCellTypeVisible)) Is Nothing Then

    ActiveSheet.Range("S" & k).FormulaR1C1 = "=RC[-6]-RC[-11]"

    End If

Loop
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...