【问题标题】:auto-copy rows to separate spreadsheet using VBA excel [duplicate]使用VBA excel自动复制行到单独的电子表格[重复]
【发布时间】:2019-03-17 06:00:44
【问题描述】:

当第一个 Sheet 中的输入值等于 Cat 时,我正在尝试将行从一个工作表自动复制到另一个工作表。

因此,如果在master(第一张表)中将Cat 输入Column A,则自动复制到单独的工作表(我们称之为Cat)。

基本上,工作表Cat 应始终包含master 中所有行的精确副本,其中Column A = Cat

我正在尝试实现的示例如下所示:

大师:

A   B C D E F
Cat     4 5 6
Y   1 2 3 4 5
Cat     1 2 3

猫床单:

A   D E F
Cat 4 5 6
Cat 1 2 3

这是我尝试过的:

Sub FilterAndCopy()
    Dim sht1 As Worksheet, sht2 As Worksheet

    Set sht1 = Sheets("Master")
    Set sht2 = Sheets("Cat")

    sht2.UsedRange.ClearContents

    With sht1.Cells(1, 1).CurrentRegion
        .AutoFilter
        .AutoFilter 1, "Cat"
        .SpecialCells(xlCellTypeVisible).EntireRow.Copy sht2.Cells(1, 1)
        .AutoFilter
    End With
End Sub

但是一行有错误:

        .SpecialCells(xlCellTypeVisible).EntireRow.Copy sht2.Cells(1, 1)

【问题讨论】:

  • 看起来你只是想以编程方式使用AutoFilter。您是否手动尝试过(没有 VBA)?此外,您的示例使用 X 来引用工作表、范围和值。字母表中还有其他几个字母可以帮助您提高问题的清晰度。
  • 自动过滤器可以工作,但我需要一些东西来分隔工作表。我的主表包含许多需要个性化的代码以用于其他报告目的。
  • 很高兴将它们结合在一起@Comintern。我刚刚针对同一个问题发布了两种不同的方法。任何帮助将不胜感激

标签: excel vba filter copy autofilter


【解决方案1】:

似乎你必须跳过列 B 和 C,我认为 from your other post 是隐藏的

然后您可以取消隐藏列 B 和 C,复制/粘贴,然后在这两张表中隐藏/删除它们

Option Explicit

Sub FilterAndCopy()
    Dim sht1 As Worksheet, sht2 As Worksheet

    Set sht1 = Sheets("Master")
    Set sht2 = Sheets("X")

    sht2.UsedRange.ClearContents
    Dim rng As Range

    With sht1.Cells(1, 1).CurrentRegion
        .Range("B:C").EntireColumn.Hidden = False ' unhide columns B and C
        .AutoFilter
        .AutoFilter 1, "X"
        .SpecialCells(xlCellTypeVisible).Copy sht2.Cells(1, 1)
        .AutoFilter

        .Range("B:C").EntireColumn.Hidden = True ' hide columns B and C
        sht2.Range("B:C").EntireColumn.Delete ' delete 'sht2' columns B and C
    End With
End Sub

【讨论】:

  • 谢谢。有没有一种方法可以在每次将 X 输入到主表时自动运行此代码而无需运行脚本?
  • 您可以将 FilterAndCopy 调用放在 Worksheet_Change() 事件处理程序中。我的理解是你已经在使用这样的事件处理程序来隐藏一些列,所以只需在其中添加一行
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-04
  • 2022-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多