首页 > 解决方案 > 如何更改命名范围的引用?

问题描述

我想通过操作的结果移动命名范围的行引用,例如: Sheets("Data").Range("Range1").Offset(a-b, 0)

我必须使用什么语法才能成功更改:Range1=$A$100 到 Range1=$A$(100+(ab))?

感谢任何帮助

编辑:当然,Scott,我正在尝试将 RowMarker 命名范围重置为其原始值,但无法获得正确的语法:

在这个子之上,我有这个:

Public lngRowData As Long

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngData As Range
Set rngData = ThisWorkbook.Names("RowMarker").RefersToRange
If lngRowData = 0 Then
lngRowData = rngData.Row
    Exit Sub
End If
If rngData.Row = lngRowData Then Exit Sub
If rngData.Row < lngRowData Then
    MsgBox lngRowData - rngData.Row & " rows removed, repairing formulas"
Else
    MsgBox rngData.Row - lngRowData & " rows added, repairing formulas"
End If
lngRowData = rngData.Row

End Sub

我会将它插入到下面的 if 语句中,以便 lngRowData 和 rngData.row 之间的结果成为偏移量。

谢谢你们

标签: excelvba

解决方案


这会做到:

ActiveWorkbook.Names.Item("Range1").RefersTo = "=Data!" & Range("Range1").Offset(a - b, 0).Address

推荐阅读