使用单元格中的文本值定义范围点

时间:2018-07-24 07:14:18

标签: excel vba excel-vba

在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)

1 个答案:

答案 0 :(得分:1)

一个选择是:

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

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

也-始终使用模块顶部的Option Explicit。这将解决numfiles的错误,特别是您尝试使用numfiles.value的错误,在将单元格的值传递给它后,它变得没有意义了!