我有一个名为“X”的命名范围,它有 1000 行,我想动态地将其减少到 100。
我尝试了 Range("X").Resize(100,1)
和 .Resize(-900,0)
但似乎都没有改变当我通过从范围下拉菜单中选择范围来 checkin Excel 时的命名范围。我做错了什么?
最佳答案
假设您有一个名为“myRange”的命名范围。如果您这样做:
Dim r As Range
Set r = Range("myRange")
Debug.Print r.Resize(10, 1).Address
你的意思是:我有这个范围r
。将其设置为匹配 myRange
作为其初始状态。然后将 r
的大小调整为其他值。您所做的是调整了 r
的大小,而不是 myRange
。
要调整命名范围的大小,您需要执行以下操作:
Dim wb As Workbook
Dim nr As Name
Set wb = ActiveWorkbook
Set nr = wb.Names.Item("myRange")
' give an absolute reference:
nr.RefersTo = "=Sheet1!$C$1:$C$9"
' or, resize relative to old reference:
With nr
.RefersTo = .RefersToRange.Resize(100, 1)
End With
关于excel - 如何使用 VBA 重新定义命名范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11031891/