在Excel列表框中选择清除范围并删除范围名称

时间:2016-11-15 00:27:06

标签: excel vba

假设我在userform模块中有一个列表框。如图所示,它包含三个范围名称。我们称之为Range1,Range2和Range3。当用户点击一个时,我希望清除相应的范围并删除范围名称。

感谢任何可以告诉我代码的人。

2 个答案:

答案 0 :(得分:0)

抱歉,我无法发表评论。但我认为此链接可以为您提供帮助。

http://www.ozgrid.com/forum/showthread.php?t=83396

答案 1 :(得分:0)

我实际上删除了范围。或者,您可以使用Range(.Value).ClearContents仅清除数据,或使用Range(.Value).Clear清除范围内的数据和格式。

enter image description here

Private Sub ListBox1_Click()
    With ListBox1
        If Not IsNull(.Value) Then
            On Error Resume Next
            Range(.Value).Delete
            ThisWorkbook.Names(.Value).Delete
            On Error GoTo 0
        End If
    End With
    RefreshRangeList
End Sub

Sub RefreshRangeList()
    Dim n As Name
    ListBox1.Clear
    For Each n In ThisWorkbook.Names
        ListBox1.AddItem n.Name
    Next
End Sub

Private Sub UserForm_Initialize()
    RefreshRangeList
End Sub