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)
解决方案
一种选择是:
Set CellRange = WS2.Range(WS2.Range("B2").Value)
这没有任何错误检查,因此假定它B2
包含一个有效的范围地址。请记住,Set
否则CellRange
它只会将右侧的值放入CellRange
(范围的默认行为/方法)。
另外 -始终Option Explicit
在模块顶部使用。这将发现错误numfiles
,尤其是在将单元格的值传递给它之后,您尝试使用numfiles.value
的方式是没有意义的!
推荐阅读
- html - 构建后未找到 Angular 11 资产
- c# - Entity Framework 6 可以从分隔字符串列映射外键吗?
- asynchronous - 暂时挂起或停用 futures::select 中使用的间隔流
- c - 如何禁止编译器预先计算常量值的乘积
- ansible - 如何使用 json_query 过滤器提取所有项目等于一个值
- sql - Teradata 中的多语句请求与分隔插入
- javascript - 为什么我的 addEventListener 函数在本地为变量赋值,而不是全局?
- ansible - Ansible 循环项目列表并将项目作为变量传递给具有“何时”条件的“包含”任务
- c# - BouncyCastle AES 密钥包装 - 8 字节的倍数错误
- c# - 在 Unity 中堆叠图像