我正在尝试auto-copy
从master
spreadsheet
到另一spreadsheet
的一行。当master
中的输入值等于X
时,就会发生这种情况。
因此,如果在X
的{{1}}中输入Column A
,则master
分隔auto-copy
(我们将其称为X)。基本上spreadsheet
应该始终包含Sheet X
中rows
中所有master
的精确副本。
我不确定这是否会影响Column A = X
,但是auto-copy
包含隐藏/取消隐藏master sheet
的{{1}}。因此,如果在script
的{{1}}中输入Columns
,则X
将被隐藏,而Column A
将被显示。
下面是我要达到的目标的一个示例:
master sheet
包含此信息。但是,如果在Column B,C
中输入D,E,F
,则只有Master Sheet
可见
X
X表:
Column A
这是我尝试过的
D,E,F
但是它返回一个错误:
A B C D E F
X 4 5 6
Y 1 2 3 4 5
X 1 2 3
答案 0 :(得分:1)
我猜您从第2行开始清除“ X”表以保留标题
在这种情况下,您可以清除所有“ X”工作表行并将标头从“主”工作表粘贴回
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
.AutoFilter
.AutoFilter 1, "X"
For Each rng In .SpecialCells(xlCellTypeVisible).Areas ' loop through visible cells "groups"
rng.Copy sht2.Range(rng.Address) ' copy current group and paste it to 'sht2' (i.e. sheet "X") corresponding address
Next
.AutoFilter
End With
With sht2.UsedRange ' reference 'sht2' used range
.Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete ' delete referenced sheet blank rows
.Rows(1).SpecialCells(xlCellTypeBlanks).EntireColumn.Delete ' delete referenced sheet blank columns
End With
End Sub
已编辑以说明可能存在的“主”工作表隐藏列