我正在清理一些我必须定期清理的数据。手动过程让我发疯。 我想基于在单个列中搜索两个值来设置范围名称。如果有帮助,我正在使用Excel 2007。
我读了很多线程,但是找不到任何特定的东西。最接近的线程是Excel VBA-根据找到的单元格创建命名范围
例如,搜索列A,当您找到单词Department时,将其设置为范围的开头,然后继续搜索列A,当您找到单词Medium时,将其设置为范围的第二点。 因此,搜索已将Department定位在A5处,并将Medium定位在A24处,我现在要设置该范围(“ A5:A24”)并为其命名。任何名称都可以做,只需要看看它是怎么做的? 一旦能够做到这一点,我就可以对这些找到的范围进行其他处理,例如删除,标记,复制等。要点是首先定义它们。
我可以进行搜索以找到两者,并且已经执行了一些循环以进行相同的操作,但是我不知道如何根据该搜索结果设置范围。
答案 0 :(得分:0)
这是一个示例,该示例说明如何使用每个列的行号和相关的列号,从一列中找到的两个单元格中创建一个Range
。
根据您的用例,可以对其进行修改以处理不同列中的单元格。您可以删除,标记和复制combinedRng
,而不必命名。
Sub MakeMyRange()
Dim departmentRng As Range, mediumRng As Range
With ActiveSheet.Columns(1)
Set departmentRng = .Find("Department")
Set mediumRng = .Find("Medium")
End With
If Not departmentRng Is Nothing Then
If Not mediumRng Is Nothing Then
Dim combinedRng As Range
Set combinedRng = Range(Cells(departmentRng.Row, 1), Cells(mediumRng.Row, 1))
End If
End If
End Sub
如果您确实需要命名范围,则可以执行以下操作:
combinedRng.Name = "Test"