gpt4 book ai didi

vba - 设置从 VBA 中的 Copy() 方法返回的 Range 对象?

转载 作者:行者123 更新时间:2023-12-03 23:07:59 28 4
gpt4 key购买 nike

我在 Excel 2003 中使用宏在过滤列表范围上使用了 Copy() 方法,我想获取返回的范围并计算行数(这样我就可以检查我是否复制了不止一行。但是我收到“需要对象”错误。

Microsoft 网站上的 VBA 引用告诉我,Copy() 方法返回一个范围对象。但是从代码来看,情况似乎并非如此。请指教!

谢谢。

For J = 1 To .ListObjects.Count
' Filter
.ListObjects(J).Range.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=CritRange
Set CopiedRange = .ListObjects(J).Range.Copy ' Object required error
If CopiedRange.Rows.Count > 1 Then
{etc...}

最佳答案

Excel 不会在 Copy() 操作中返回范围对象。我尝试在复制之前测试行数的范围,但是如果不考虑特别是只考虑可见行,这就不起作用了。因此我需要编写一个新函数:

Function CountVisibleRows(rg As Range)
Dim NumRows As Integer
' Count visible cells in the first column, minus one to account for the header
NumRows = rg.Columns(1).SpecialCells(xlCellTypeVisible).Count - 1
CountVisibleRows = NumRows
End Function

然后,我在复制之前在范围内对此进行了测试,并确定了要复制的行数(因为默认情况下 Copy() 方法仅复制可见行)。

关于vba - 设置从 VBA 中的 Copy() 方法返回的 Range 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7900702/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com