本文介绍了如果没有任何过滤条件,则检查下一个过滤器并将过滤后的值复制到其他工作表中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Hi Team,


我是VBA编程的新手,正在尝试根据我的标准开发宏来过滤数据。我有3组值要在一列中过滤,需要一次过滤一次,然后根据标准复制到其他表格。


例如:我有376,278,列中的436。我需要先为376应用过滤器,然后将过滤后的数据复制到其他工作表中。然后过滤278,如果278没有行,则不做任何事情,检查436并将数据复制到其他工作表。


我试着编写代码但是我遇到的问题如果我的任何标准不存在,我的宏就会抛出错误而且不会进入代码的下一步。


下面是我的代码:


Dim myCount As Long

Dim FilteredRange As Range

     使用工作表("E2E_ResponseTime")

                    .UsedRange.AutoFilter字段:= 3,Criteria1:=" 376"

                      myCount = ActiveSheet.UsedRange.SpecialCells(xlCellTypeVisible).Rows.Count


                     如果myCount> 1然后



                          '过滤范围基于C列
                           使用工作表("E2E_ResponseTime")。范围("C1")

                                    .AutoFilter字段:= 3,Criteria1:=" 376"

                                   设置FilteredRange = ActiveSheet.AutoFilter.Range.SpecialCells(xlCellTypeVisible)


                                  


                         结束


                           '将数据复制到其他工作表的代码


                   其他


                        MsgBox"未找到数据"


               结束如果


   结束


     使用工作表("E2E_ResponseTime")

                    .UsedRange.AutoFilter字段:= 3,Criteria1:=" 278"

                      myCount = ActiveSheet.UsedRange.SpecialCells(xlCellTypeVisible).Rows.Count



                            如果myCount> 1然后



                                   '过滤范围基于C栏
                                     使用工作表("E2E_ResponseTime")。范围("C1")

                                                    .AutoFilter字段:= 3,Criteria1:=" 278"

                                                     设置FilteredRange = ActiveSheet.AutoFilter.Range.SpecialCells(xlCellTypeVisible)


                                                      MsgBox"找到数据"


                                                      '将数据复制到其他工作表的代码


                                   结束


                     否则


                                    MsgBox"未找到数据"


                     结束如果


结束


 我要求有人可以帮我吗?                  

解决方案

Hi Team,

I'm new to VBA Programming and was trying to develop a macro to filter data based on my criteria. I have 3 sets of values to filter in a column which need to be filtered one at a time and copied to other sheets based on the criteria.

For instance : I have 376, 278, 436 in a column. I need to apply filter for 376 first and copy the filtered data into other sheets. Then filter for 278 , if there are no rows for 278 then do nothing and check for 436 and copy data to other sheet.

I tried to write code but the problem I'm facing here is if any of my criteria is not there my macro is throwing error and it doesn't go to next step of the code.

Below is my piece of code:

Dim myCount As Long
Dim FilteredRange As Range
     With Worksheets("E2E_ResponseTime")
                    .UsedRange.AutoFilter Field:=3, Criteria1:="376"
                     myCount = ActiveSheet.UsedRange.SpecialCells(xlCellTypeVisible).Rows.Count

                      If myCount > 1 Then

                          ' filter range based on column C
                           With Worksheets("E2E_ResponseTime").Range("C1")
                                   .AutoFilter Field:=3, Criteria1:="376"
                                    Set FilteredRange = ActiveSheet.AutoFilter.Range.SpecialCells(xlCellTypeVisible)

                                  

                          End With

                           'Code to copy data to other sheet

                   Else

                       MsgBox "No data found"

                End If

    End With

     With Worksheets("E2E_ResponseTime")
                    .UsedRange.AutoFilter Field:=3, Criteria1:="278"
                     myCount = ActiveSheet.UsedRange.SpecialCells(xlCellTypeVisible).Rows.Count

                            If myCount > 1 Then

                                   ' filter range based on column C
                                     With Worksheets("E2E_ResponseTime").Range("C1")
                                                    .AutoFilter Field:=3, Criteria1:="278"
                                                     Set FilteredRange = ActiveSheet.AutoFilter.Range.SpecialCells(xlCellTypeVisible)

                                                      MsgBox "data found"

                                                      'Code to copy data to other sheet

                                    End With

                      Else

                                    MsgBox "data not found"

                      End If

End With

  I request if anyone could help me here ?                  

解决方案


这篇关于如果没有任何过滤条件,则检查下一个过滤器并将过滤后的值复制到其他工作表中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-03 06:44