我正在尝试这个,但它给了我一个类型不匹配。还有另一种方法吗?我假设rSource不是来自活动表。
另外,我只需要价值观。
编辑:rSource应该有行和列。它也将是一个连续的区域。
编辑:完成此操作后,我应该能够独立过滤每个范围。
Function CopyRange(rSource As range) As range
' Declarations
Dim rTemp As range
' Create new range starting at cell A1
Set rTemp = Range(Cells(1, 1), Cells(rSource.Rows.Count, rSource.Columns.Count))
rTemp.Value = rSource.Value
Set CopyRange = rTemp
End Function
答案 0 :(得分:1)
我相信你的功能很好。
我创建了一个teststub:
Function Check()
Dim x As Range
Dim c As Range
Set c = Range("A1", "A2")
Set x = CopyRange(c)
End Function
将单元格A1设置为2,将A2设置为3。
踩到这个,并使用以下方法评估x变量:
?x.Range( “A1”)
(我的格式与?x不匹配。)
我得到2。
希望有所帮助。
答案 1 :(得分:1)
假设此代码位于Worksheet的代码模块中,那么它应该可以正常工作。我只是尝试了它并且它运行正常(假设传递给函数的范围是连续的)。
或者,试试这个: -
Function CopyRange(rSource As Range) As Range
Call rSource.Copy(Cells(1, 1))
Set CopyRange = Range(rSource.Address).Offset(1 - rSource.Row, 1 - rSource.Column)
End Function
答案 2 :(得分:0)
这是一个连续的区域吗?它是否被空细胞所包围?如果是这样,您应该能够使用currentregion属性来设置范围。
我在想你收到错误的原因是因为你没有在你的第一个单元格声明中设置rSource。