【问题标题】:Define a range point using text value in cell使用单元格中的文本值定义范围点
【发布时间】:2018-07-24 07:14:17
【问题描述】:

在 WS2 的单元格 B2 中,我有公式 =CONCATENATE("B3:B", 'ABC'!N4)。它显示文本“B3:B24”。我想将此定义为 VBA 上的一个范围,它将复制到 A 列中的最后一行数据。或者,我在 WS2 单元格 C4 中也有值 24。我已经尝试了多种方法,但我无法让它发挥作用

Sub Sample()
Dim rng1 As Range
Dim rng2 As Range
Dim rngX As Range
Dim CellRangeDefine As Variant
Dim CellRange As Range
Dim WS1 As Worksheet
Dim WS2 As Worksheet

Set WS1 = Worksheets("ABC")
Set WS2 = Worksheets("123")

numFiles = WS2.Range("C4").Value

CellRange = Range("B3", Range("B" & numFiles.Value))

CellRange.Copy Destination:=WS2.Range("A" & _
                                 WS2.Range("A" & WS2.Rows.Count).End(xlUp).Row + 1)

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    一种选择是:

    Set CellRange = WS2.Range(WS2.Range("B2").Value)
    

    这没有任何错误检查,因此假定B2 包含一个有效的范围地址。请记住 Set CellRange 否则它只会将右侧的值放入 CellRange (范围的默认行为/方法)。

    另外 - 总是在模块顶部使用 Option Explicit。这将发现numfiles 的错误,特别是您尝试使用numfiles.value 的方式,在您将单元格的值传递给它之后这没有意义!

    【讨论】:

      猜你喜欢
      • 2014-07-05
      • 2016-03-19
      • 1970-01-01
      • 2023-03-10
      • 2020-07-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-09
      • 1970-01-01
      相关资源
      最近更新 更多