Пропуск копии таблицы, когда у фильтра нет данных - PullRequest
0 голосов
/ 20 ноября 2018

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

У меня есть некоторые идеи, но они начинают усложняться, и у меня есть ряд таблиц, использующих этот метод, поэтому я ищу более простой способ избежать полной копии данных значений, которые не предназначены для копирования.

ActiveSheet.ListObjects("iexp_period").Range.AutoFilter Field:=1, Criteria1 _
    :=Array("Asset", "Asset(Rc)", "LVP", "LVP(Rc)"), Operator:=xlFilterValues

Range("iexp_period").Copy

Таким образом, как указано, если в таблице нет отфильтрованных результатов, эта копия копирует данные всей таблицы, даже если при копировании все строки скрыты.

Существует ли быстрый способ избежать этого, пожалуйста

1 Ответ

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

Я не уверен, так как я сам новичок в VBA, но когда я только что исследовал похожую проблему, и это: http://www.vbaexpress.com/forum/showthread.php?40514-How-to-exclude-hidden-rows-columns-while-executing-a-VB-code очень мне помог.

Я предполагаю, что rows.hidden будет тем методом, который вы ищете? Может быть, вам нужно отрицать это.

Вот еще один пример кода (от Аллена Уайета, а не от меня!)

Sub NumberClients()
    Dim c As Range
    Dim j As Integer

    If Selection.Columns.Count > 1 Then
        MsgBox "Only select the cells you want numbered"
        Exit Sub
    End If

    j = 0
    For Each c In Selection
        If Not c.Rows.Hidden Then
            j = j + 1
            c.Value = j
        Else
            c.Clear
        End If
    Next c
End Sub

Надеюсь, это вам немного поможет:)

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