繁体   English   中英

Excel VBA-定义命名范围

[英]Excel VBA - define named ranges

对于工作表“大小选择”的范围C4:C53中内容的每个单元格,我想创建一个新的命名范围,并且该范围的名称应与该单元格的内容相同。

每个命名范围应由公式驱动,并具有取决于单元格行的变量。

我已经尝试过对此进行编码,但是仍然会出错。 您能否看一下并帮助我解决问题?

Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Intersect(Target, Range("A1:F20000")) Is Nothing Then

    Dim i As Integer
    Dim range_name As String


    For i = 4 To 53

    If Sheets("Size Selection").Cells(i, 3) <> "" Then

    Range(range_name).Formula = "=OFFSET('Size Selection'!$F$" & i & ", 0, 0, 1, COUNT(IF('Size Selection'!$F$" & i & ":$AZ$" & i & "="", "", 1)))"

    Range(range_name).Name = Sheets("Size Selection").Cells(i, 3)

    End If

    Next

    End If

End Sub

非常感谢您的帮助!

根据您在以下讨论中的评论,以下是我认为的建议:

Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Intersect(Target, Range("A1:F20000")) Is Nothing Then

    Dim i As Integer
    Dim range_name As String


    For i = 4 To 53

      If Sheets("Size Selection").Cells(i, 3) <> "" Then

       ActiveWorkbook.Names.Add _
          Name:= Sheets("Size Selection").Cells(i, 3).Text, _
          RefersToR1C1:="=OFFSET('Size Selection'!$F$" & i & ", 0, 0, 1, COUNT(IF('Size Selection'!$F$" & i & ":$AZ$" & i & "="", "", 1)))"

      End If

    Next

    End If

End Sub

RefersToR1C1部分上可能是错误的,但至少现在应该对您有意义。

希望这能解决问题!!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM