首页 > 解决方案 > 根据 Range 变量分配单元格值

问题描述

我目前有从多个范围复制值并将这些值粘贴到其他范围的代码。这个项目的范围是不断变化的,所以每次添加行或列时都需要在我的 VBA 代码中更改范围。我试图通过创建全局范围变量来存储范围位置来简化这一点,并让我的复制/粘贴代码引用这些变量。

Public test As Range
Public def1 As Range

Public Sub initializeGlobalVars()

'Assign values to the global variables

Set def1 = Sheets("Defaults").Range("B10:D14")

Set test = Sheets("Defaults").Range("B32:D36")
test = def1

End Sub

我知道我在这里遗漏了一些行或错误地接近它,但我希望能够通过引用变量“test”而不是单元格位置来更改变量“test”中实际单元格的值,因为它是不断变化的。这可能吗?

感谢您的帮助!

标签: excelvbavariablesrange

解决方案


因为Range需要一个字符串变量,所以您可以执行以下操作:

Dim strRangeToUse as String
strRangeToUse = "B10:D14"

Set test = Sheets("Defaults").Range(strRangeToUse)

如果您想strRangeToFill使用测试范围设置另一个范围 ( ),您可以执行以下操作:

Sheets("Defaults").Range(strRangeToFill).Value = test.Value

推荐阅读