我以为这会是一个简单的答案但却在任何地方都找不到它
我有一个基于所选单元格的宏,它在右键单击上下文菜单中运行。
我需要根据单元格在命名范围内的位置获取列号。
示例命名范围 = C4:H9 选定单元格 = E6 我尝试获取的值是 = 3
E 是第 5 列 - C 是第 3 列 + 1,因为列号不是从 0 开始的。
有没有简单的方法可以在像 Range("namedRange").columnDif(selectedCell) 这样的行上执行此操作
答案1
尝试类似
Dim namedRangeFirstCol: namedRangeFirstCol = Range("Test").Column
Dim namedRangeLastCol: namedRangeLastCol = namedRangeFirstCol + Range("Test").Columns.Count - 1
If Selection.Column >= namedRangeFirstCol And Selection.Column <= namedRangeLastCol Then
MsgBox Selection.Column - Range("Test").Column + 1
End If
IF 语句仅用于检查所选单元格是否确实在范围内。您可能只需要Selection.Column - Range("Test").Column + 1