значения ячеек из отфильтрованных строк в Excel, используя VBA - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть файл Excel, в котором я использовал фильтр для определенного столбца. После этого он вернул мне 3 видимых ряда. Теперь я хочу извлечь значение ячейки из видимых 3 строк в одном столбце. Как написать код VBA для этого.

Примечание: я использую UFT, vb скрипт для подключения приложения Excel.

Environment.value("Path1")="C:Test\Data1\"
Environment.value("FileName")="ExcelTest.xlsx"
Set obj = CreateObject("Excel.Application")
obj.visible=True  
Set obj1 = obj.Workbooks.Open(Environment("Path1")&Environment("FileName"))
Set obj2=obj1.Worksheets("RESULT")
obj2.Range("L1").Autofilter 12,"abcdef"
obj2.Range("A1").Autofilter 1,Array("Bucket",2,"Material","Flags"),7
rows=obj2.usedrange.columns(1).specialcells(12).count-1

1 Ответ

0 голосов
/ 12 ноября 2018

, если вы хотите работать только с видимыми ячейками.

Пример, в котором вы фильтруете по столбцу А, для адаптации к вашим данным, конечно:

    Sub test()


Dim ws As Worksheet
Dim i As Long, LastRow As Long
Dim r As Range, Cell As Range, Range As Range

Set ws = ThisWorkbook.Sheets("Sheet1")
Set r = ws.Range("A1")

 ws.AutoFilterMode = False
    With r
        .AutoFilter Field:=1, Criteria1:="Yourcriteria"
        LastRow = ws.Cells(Rows.Count, 1).End(xlUp).Row
        Set Range = ws.Range(ws.Cells(2, 1), ws.Cells(LastRow, 1))

        For Each Cell In Range.SpecialCells(xlCellTypeVisible)
            'whatever you need to be done
        Next Cell

    End With
    ws.AutoFilterMode = False  
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...