Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.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,我正在尝试写一个脚本,它可以做很多事情。我使用宏来做基本的工作,但我正试图为其余的工作找到代码。我有一个15列多行的工作表(这个工作表是由另一个程序制作的,每次运行时都会更改)。我必须通过它删除某些东西。我需要一个脚本 删除第2行(它总是无用的)——完成 给N列一个10的宽度——完成 将D列设为5位数字——完成 设置自动筛选--完成 查找O列包含空白或“U”的所有行--Done 将原始工作表中的这些行剪切并粘贴到同一工作簿中的新工作表中 自动筛选,使列M按从最小到最大的顺序排列 有一个弹出窗口询

我正在尝试写一个脚本,它可以做很多事情。我使用宏来做基本的工作,但我正试图为其余的工作找到代码。我有一个15列多行的工作表(这个工作表是由另一个程序制作的,每次运行时都会更改)。我必须通过它删除某些东西。我需要一个脚本

  • 删除第2行(它总是无用的)——完成
  • 给N列一个10的宽度——完成
  • 将D列设为5位数字——完成
  • 设置自动筛选--完成
  • 查找O列包含空白或“U”的所有行--Done
  • 将原始工作表中的这些行剪切并粘贴到同一工作簿中的新工作表中
  • 自动筛选,使列M按从最小到最大的顺序排列
  • 有一个弹出窗口询问最大值是多少
  • 在第一次粘贴后,剪切并粘贴M列包含的数字高于您在弹出窗口中输入的数字的任何行
  • 筛选列K以仅显示列K包含空白的行
  • 按日期将其排列在第N列
  • 如前所述,剪切并粘贴N列包含六个月前一个月第一天之前日期的任何行(例如,今天,即2014年3月1日)
  • 删除第二个工作表中除D和E以外的所有列
  • 我有所有操作的代码,我只需要获得max(上面的步骤8)和日期(上面的步骤12)的弹出对话框。我使用了5种不同的脚本。第一个在开头(1-4)执行格式化步骤。第二个进行“U”搜索(5-6)。第三个进行最大搜索(7-9),第四个进行最终搜索(10-12)。第五个在第二张图纸(13)上进行清理


    我假设当我进入对话框时,我会将对话框中给出的答案分配给变量,并在代码中使用它?我该怎么做呢

    这里需要很多步骤,我的建议是首先分解代码。你有13件不同的事情,你的目标是做我会写每一个单独的。在我看来,根据您的代码,您正在使用宏记录器获得所需的结果,然后反向工程宏记录器为您生成的内容和VBA

    因此,这里有一个快速的步骤,可以让你去

    我将创建一个主类

    Sub Main()
    call Macro4()
    End Sub
    
    
    Sub Macro4()
    '
    ' Macro4 Macro
    '
    '
    'Delete Row 2
    Rows("2:2").Select
    Selection.Delete Shift:=xlUp
    Range("N6").Select
    'Show full dates
    Columns("N:N").EntireColumn.AutoFit
    'Engage Autofilter
    Selection.AutoFilter
    'Make the Account Number format 5 digits
    Columns("D:D").Select
    Selection.NumberFormat = "00000"
    'Show All in Column O (single status) to be deleted
    ActiveWorkbook.Worksheets("50100").AutoFilter.Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("50100").AutoFilter.Sort.SortFields.Add Key:=Range( _
        "O1:O4222"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("50100").AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("O5").Select
    ActiveSheet.Range("$A$1:$O$10000").AutoFilter Field:=15, Criteria1:="=U", _
        Operator:=xlOr, Criteria2:="="
    End Sub
    

    为了给您提供更多帮助,我需要您的标签名称。请您发一份副本,我明天再看。

    欢迎来到StackOverflow。你已经试过什么了?所以这不是一个自由软件开发服务,但是如果你在寻找解决方案的过程中遇到了困难,那么如果你展示了你目前的进展,我们可以帮助你做得更好。因为我只是想尽可能多地完成工作,所以我最终做了几个不同的解决方案(1-5,7,10-11,13),我需要弄清楚的是,如何让它将自动筛选显示的内容剪切粘贴到新的工作表中,并弹出一个窗口询问日期和最大值。那么,将它们全部附加在一起是否现实?