如何使用宏来命名范围(" B1:Bn"),其中' n'将来可能会增加

时间:2015-04-08 08:48:22

标签: excel vba excel-vba

基本上我想命名一个范围(" B1:Bn")以便我可以使用Combobox的名称来列出该范围的值,但这里范围/列表可能会增加所以我希望这个范围是dyanamic,因此shoud与该范围具有相同的名称。 我在下面写了一段代码:

Private Sub ComboBox1_Change()
    Dim Total_Row As Integer
    Total_Row = Worksheets("Database").Range("B1").CurrentRegion.Rows.Count
    Range("B1:B11").Select

    'Now I want something like `Range("B1:B***Total_Row***").Select`
End sub

或者我们可以使用下面的代码使其动态化吗?

    ActiveWorkbook.Names.Add Name:="Testing", _
        RefersToR1C1:="=Database!R2C2:R***(Total_Row)***C2"
End Sub

3 个答案:

答案 0 :(得分:1)

以下是您想要的吗?我按照你提到的那样选择第二栏

Range(Cells(1,2), Cells(Total_Row, 2)).Select

答案 1 :(得分:1)

Range参数是字符串,因此您只需将其连接为字符串

Range("B1:B" & Total_Row).Select

与下面的行相同

RefersToR1C1:="=Database!R2C2:R" & Total_Row & "C2"

答案 2 :(得分:0)

试试这个(不要忘记定义Worksheet_Name

Private Sub ComboBox1_Change()
Dim Total_Row As Integer
Dim Pasted_Range As String
Total_Row = Worksheets("Database").Range("B1").CurrentRegion.Rows.Count
Pasted_Range = "=" & Worksheet_Name & "!R2C2:R" & Total_Row & "C2"

ActiveWorkbook.Names.Add Name:="Testing", RefersToR1C1:=Pasted_Range
End Sub

点击此处了解详情:Copy range to another sheet and insert name from Input Box with this copy