我怎样才能使用一个macros命名一个范围(“B1:Bn”),其中'n'将来可能会增加
基本上我想命名一个范围(“B1:Bn”),以便我可以使用该名称作为组合Combobox
来列出该范围的值,但是这里范围/列表可能会增加,所以我希望这个范围是透明的,所以应该有该范围的同名。 我已经写了一个代码如下:
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
或者我们可以让它dynamic使用下面的代码?
ActiveWorkbook.Names.Add Name:="Testing", _ RefersToR1C1:="=Database!R2C2:R***(Total_Row)***C2" End Sub
试试这个(不要忘了定义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
检查这个更多的信息: 复制范围到另一个工作表,并从input框中插入名称与此副本
以下是你想要的吗? 我提到第二栏
Range(Cells(1,2), Cells(Total_Row, 2)).Select
范围参数是string,所以你只需要连接它作为string
Range("B1:B" & Total_Row).Select
和下面一样
RefersToR1C1:="=Database!R2C2:R" & Total_Row & "C2"