【问题标题】:Setting up a dynamic range in excel-vba在 excel-vba 中设置动态范围
【发布时间】:2013-08-28 15:06:38
【问题描述】:

我的代码以此为基础。 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,它返回一个变体或什么?

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

【问题讨论】:

  • Cells(8, 1) = "A8"。如果您想要单元格 H1,它将是 Cells(1, 8)Cells(1, "H")。如果你想要单元格 H4,它将是 Cells(4, 8)Cells(4, "H")
  • 或者,只需 Range("H1")Range("H4")
  • 哇。如果你想把它作为答案扔掉,我会投赞成票。我的东西现在可以用了。

标签: vba excel


【解决方案1】:

不是 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 上产生以下结果:

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多