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