根据范围变量分配单元格值

时间:2019-04-22 19:28:03

标签: excel vba variables 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”来更改变量“ test”中实际单元格的值单元位置,因为它不断变化。这可能吗?

谢谢您的帮助!

2 个答案:

答案 0 :(得分:0)

由于Range使用字符串变量,因此您可以执行以下操作:

Dim strRangeToUse as String
strRangeToUse = "B10:D14"

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

如果您随后要为测试范围设置另一个范围(strRangeToFill),则可以执行以下操作:

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

答案 1 :(得分:0)

您可以使用TABLES或NAMED RANGES

1-表格具有名称,可用于确定某些动态范围! 这样你就可以使用 ActiveSheet.ListObjects(“ table”)。range()

Here is the table

2-您可以创建一个命名范围

那样您就可以使用

Range("RAGEDNUMBERONE") 

Ranged Named