excel - 从选定的单元格中设置命名范围
问题描述
我必须为最后两行设置一个命名范围,其中包含特定工作表上的内容。我可以选择包含我需要的内容的那 2 行,但无法从选定的单元格中设置命名范围。我想知道是否有办法从选定的单元格中设置一个命名范围。
我曾尝试录制宏并对其进行调整以适合我的需要,但无法这样做。以及使用单元格引用尝试下面的代码。但这需要在很多文件上运行,并且不同的文件会有不同的底行。
Sub LastCell()
Dim MyNamedRng As Range
'Select Worksheet
Worksheets("Sheet1").Activate
'Select Last Used Cell In The Worksheet
Cells.Find(What:="*", After:=[A1], SearchDirection:=xlPrevious).Select
'Select Cell Above Last + All To The Left
Range(Selection, Selection.Offset(-1, 0)).Select
Range(Selection, Selection.End(xlToLeft)).Select
'Create Named Range
Set MyNamedRng = Sheets("Sheet1").Range("a3:gk4")
Names.Add Name:="KeyData", RefersTo:=MyNamedRng
End Sub
解决方案
这将在相关行中找到最后使用的列。
Sub LastCell()
Dim r1 As Range, r2 As Range
Worksheets("Sheet1").Activate
Set r1 = Cells.Find(What:="*", After:=[A1],SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
If Not r1 Is Nothing Then
If r1.Row > 1 Then
Set r2 = r1.offset(-1).resize(2).Entirerow.Find(What:="*", After:=Cells(r1.Row, 1), SearchOrder:=xlByColumns, SearchDirection:=xlPrevious)
'Use line below if last used column is not in the named range
'Set r2 = Cells.Find(What:="*", After:=Cells(r1.Row, 1), SearchOrder:=xlByColumns, SearchDirection:=xlPrevious)
Range(Cells(r1.Row - 1, "A"), Cells(r1.Row, r2.Column)).Name = "KeyData"
End If
End If
End Sub
阅读本文了解使用Select
.
推荐阅读
- c# - 匹配参数的可空性和返回类型的泛型类型参数
- javascript - 如何在下拉列表中填充来自后端的数据并在 Angular 中选择值?
- java - 如何在firestore android studio中获取新添加数据的通知?
- c# - 平铺对象位置与 MonoGame 位置不匹配
- emacs - Emacs 中的“向后相同语法”
- python - OS Mojave 中的 tkinter 8.6 系统崩溃错误是否已在 mac OS Catalina 中修复?
- vue.js - 将 axios 全球化为 vue 项目中的 API 包装器
- angular - 使用指令将参数传递给子组件角度
- .net - 光标不生成唯一 ID
- angular - 自定义指令不适用于 mat-menu-item 指令 - 排序可能是一个问题