首页 文章

在excel-vba中设置动态范围

提问于
浏览
2

我的代码基于此 . 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 回答

  • 6

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

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

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

  • 2

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

相关问题