【发布时间】:2018-10-10 04:34:53
【问题描述】:
我正在尝试从master spreadsheet 到另一个spreadsheet 的auto-copy。这应该在master 中的输入值等于X 时发生。
所以如果X在master中输入了Column A,那么auto-copy就将spreadsheet分隔开(姑且称之为X)。基本上Sheet X 应该始终包含master 中所有rows 的精确副本,其中Column A = X。
我不确定这是否会影响auto-copy,但master sheet 包含一个隐藏/取消隐藏Columns 的script。因此,如果在master sheet 中将X 输入Column A,则Column B,C 将被隐藏,D,E,F 将被显示。
我正在尝试实现的示例如下所示:
Master Sheet 包含此信息。但是如果将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
X 表:
A D E F
X 4 5 6
X 1 2 3
这是我尝试过的
Sub FilterAndCopy()
Dim sht1 As Worksheet, sht2 As Worksheet
Set sht1 = Sheets("Master")
Set sht2 = Sheets("X")
Intersect(sht2.UsedRange, sht2.Rows("2:" & Rows.Count)).ClearContents
sht1.Cells(1, 1).CurrentRegion.AutoFilter
sht1.Cells(1, 1).CurrentRegion.AutoFilter 1, "X"
sht1.Cells(1, 1).CurrentRegion.Offset(1).SpecialCells(xlCellTypeVisible).EntireRow.Copy sht2.Cells(2, 1)
sht1.Cells(1, 1).CurrentRegion.AutoFilter
End Sub
但它返回一个错误:
Microsoft Visual Basic
Object variable with block variable not set
【问题讨论】:
-
如果
Intersect返回Nothing,那么.ClearContents调用的对象引用是什么?
标签: excel vba copy spreadsheet