在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)
一种选择是:
Set CellRange = WS2.Range(WS2.Range("B2").Value)
这没有任何错误检查,因此假定其中B2
包含有效的范围地址。记住Set
了CellRange
,否则它只是把右边的数值为CellRange
(默认行为/为范围的方法)。
另外-始终Option Explicit
在模块顶部使用。这将引起的错误numfiles
,尤其是您尝试使用的错误方式,numfiles.value
在将单元格的值传递给它之后,它变得毫无意义了!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句