将动态范围合并为一个Excel或VBA范围

将动态范围合并为一个Excel或VBA范围,vba,excel,merge,range,Vba,Excel,Merge,Range,我目前正试图采取两个范围,并结合成一个范围。我的范围是动态的,因为它们根据日期而变化。例如,假设我要组合的两个范围是A3:A10,另一个是C7:C12。它每天刷新并将索引移动1。。。因此,新的范围是A4:A11和C8:C13。我想将这两个部分合并到一个范围中,形成一个不同的列。我假设这必须在vba中实现。。。然而,我的运气一直很差。我有一些值,这些值指示要在工作表中设置范围的行号。我尝试过制作VBA宏,但一直没有成功。我一直得到9(我想要的范围的第一项)作为结果,而不是范围,但我想使用该函数打印

我目前正试图采取两个范围,并结合成一个范围。我的范围是动态的,因为它们根据日期而变化。例如,假设我要组合的两个范围是A3:A10,另一个是C7:C12。它每天刷新并将索引移动1。。。因此,新的范围是A4:A11和C8:C13。我想将这两个部分合并到一个范围中,形成一个不同的列。我假设这必须在vba中实现。。。然而,我的运气一直很差。我有一些值,这些值指示要在工作表中设置范围的行号。我尝试过制作VBA宏,但一直没有成功。我一直得到9(我想要的范围的第一项)作为结果,而不是范围,但我想使用该函数打印整个组合范围。我也想过使用Sub,但我在使用Sub方面不是很有经验

这是我到目前为止所拥有的。。。请让我知道任何建议或提示

Function FiveYTwoY()
 Worksheets("India Data").Activate
 index5_90 = Cells(10, 2).Value '5Y 90 day index
 index5_yes = Cells(9, 2).Value '5Y yesterday index
 index2_90 = Cells(7, 2).Value  '2Y 90 day index
 index2_yes = Cells(6, 2).Value '2Y yesterday index
 Dim range5 As Range
 Set range5 = Range(Cells(index5_90, 20), Cells(index5_yes, 20))

 Dim range2 As Range
 Set range2 = Range(Cells(index2_90, 17), Cells(index2_yes, 17))
 FiveYTwoY = Union(range2, range5)

End Function

感谢您的帮助

您应该避免使用
。选择/激活
。你可能想看看。完全限定您的对象

您还必须使用
Set
分配范围,如下所示

Sub Sample()
    Dim range5 As Range, range2 As Range, FiveYTwoY As Range

    With Worksheets("India Data")
        index5_90 = .Cells(10, 2).Value '5Y 90 day index
        index5_yes = .Cells(9, 2).Value '5Y yesterday index
        index2_90 = .Cells(7, 2).Value  '2Y 90 day index
        index2_yes = .Cells(6, 2).Value '2Y yesterday index

        Set range5 = .Range(.Cells(index5_90, 20), .Cells(index5_yes, 20))
        Set range2 = .Range(.Cells(index2_90, 17), .Cells(index2_yes, 17))

        Set FiveYTwoY = Union(range2, range5)

        With FiveYTwoY
            '
            '~~> Do whatever you want with that range here
            '
        End With
    End With
End Sub

不,我相信我们讨论的是不同的事情。是否需要
函数FiveYTwoY()作为范围
?使用F8(单周期)和
Debug.Print range 5.Address
,等等。不,我不这么认为。这对我没用,谢谢!我会看看这是否有效。如何将范围打印到工作表中?
FiveYTwoY.Copy destng
出于某种原因,它会说Sub undefined。。。我不知道我的车怎么了。我会弄明白的。非常感谢,你真是太棒了<代码>解压就是一个例子。它是您必须粘贴的目标范围。例如
FiveYTwoY.Copy工作表(“印度数据”).Range(“A40”)