在excel-vba中设置一个dynamic范围

我基于我的代码。 Excel VBA – select一个dynamic的单元格范围

我试图find创build一个dynamic范围的语法。 例子:我总是从D8开始,但范围的上限是基于另一个单元格中的整数。 [H4]

Dim count As Integer count = Sheet2.Cells(8,1).Value Set refRng = Sheet2.Range("D8:" & Cells(8, i).Address) 

是相关的代码示例。

我现在知道Sheet2.Range(“H1”)不返回一个int,它返回一个变体或东西?

我已经尝试了一百万种不同的东西,并且发现它们都没有工作。 必须有一个更好的方法来build立一个dynamic范围。

这本来是一个评论,但它也是解决scheme,所以我把它作为答案

Cells(8, 1) 8,1 Cells(8, 1) =“A8”。 如果你想要单元格H1,它将是Cells(1, 8)Cells(1, "H") 。 如果你想要单元格H4,它将是Cells(4, 8)Cells(4, "H")

或者, Range("H1")Range("H4")

不是100%确定你想要达到什么目的,但是就范围而言,也许这是一个开始:

 Option Explicit Sub select_Range() Dim count As Integer count = ThisWorkbook.Worksheets("Sheet2").Range("A8").Value Dim i As Integer i = count Dim refRng As Excel.Range Set refRng = ThisWorkbook.Worksheets("Sheet2").Range("D8:D" & i) refRng.Select End Sub 

这在Sheet2上导致以下结果:

在这里输入图像说明