创建可变数量的范围,并在VBA中为其指定变量名称

时间:2017-01-15 02:51:41

标签: vba excel-vba excel

我有一个表格,其中第1列的模型名称和第2列的数量。 每次表格的长度都会改变。此外,可以列出一些没有数量的模型(Col2中的对应单元格为空)。 我想创建一个VARIABLE数量的范围,具体取决于我的第2列中有多少非零值。 然后,我想使用模型上对应于此范围+“Qty”的名称来命名这些范围(例如,如果第一个非零值是对应于model1的值,我想命名范围Model1Qty。如果找到的非零值为2,则需要创建2个Dim范围,每个范围基于相应模型的名称等。 如果我的表的图片通过,在我的例子中应该创建2个范围:Model1Qty(范围(“B2”))和Model3Qty(范围(“B4”))。

这是我的代码的开头:

Sub CreatingRng()
   Dim N1 As Integer
   Dim R As Range
     Set R = Range("A1").CurrentRegion
     For N1 = (1 + R.Row) To (R.Rows.Count + R.Row)
       Cells(N1, R.Columns(2).Column).Select
       If IsNumeric(Cells(N1, R.Columns(2).Column)) And _
        Cells(N1, R.Columns(2).Column) > 0 Then
           ‘create a range with Cells(N1, R.Columns(2).Column), named after the corresponding model name
       End If
     Next N1
End Sub

一个例子: Example

1 个答案:

答案 0 :(得分:0)

尝试一下:

Sub CreatingRng()
    Dim N1 As Integer
    Dim R As Range

    Set R = Range("A1").CurrentRegion
    For N1 = (1 + R.Row) To (R.Rows.Count + R.Row)
        Cells(N1, R.Columns(2).Column).Select
        If IsNumeric(Cells(N1, R.Columns(2).Column)) And Cells(N1, R.Columns(2).Column) > 0 Then
            ActiveWorkbook.Names.Add Name:=Selection.Offset(0, -1).Value & "Qty", RefersToR1C1:=Selection
        End If
    Next N1
End Sub