在excel-vba中设置动态范围

时间:2013-08-28 15:06:39

标签: excel vba excel-vba

我的代码基于此。 Excel VBA - select a dynamic cell range

我正在尝试找到创建动态范围的语法。示例:我总是从D8开始,但范围的上限基于另一个单元格中的int计数。 [H4]

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

是相关代码示例。

我现在知道Sheet2.Range(“H1”)不返回一个int,它返回一个变量还是什么?

我已经尝试了一百万种不同的东西,并且已经发现它们都不起作用。必须有一种更好的方法来设置动态范围。

2 个答案:

答案 0 :(得分:6)

不是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

enter image description here

答案 1 :(得分:2)

这最初是一个评论,但它也是解决方案所以我将其添加为答案

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

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