更改命名范围的开始
我有一个单独的namedRange(例如)错误地从第1列的第5行开始,当它应该在第2行(在标题行下)开始。
注: 实际上,我不知道它从哪里开始,只是它在哪里。
我正在尝试像这样移动namedRange:
Set SecondCellInFirstColumnOfNamedRange = Range(rngNames(irng)).Columns(1).Cells(2) Set LastCellInFirstColumnOfNamedRange = Range(rngNames(irng)).Columns(1).Cells(RowNumberOfLastCell) Range(SecondCellInFirstColumnOfNamedRange, LastCellInFirstColumnOfNamedRange).Name = rngNames(irng)
但它只是不断推动页面上的命名范围。
我一直在试图做的是这样的:
- find第一个单元格的列索引
- 指定列中的第二个单元格作为namedRange的开始
- 指定列中最后使用的单元格作为namedRange的结尾
假设你的命名范围已经结束在正确的行,一个快速解决scheme将是:
With Range(rngNames(irng)) .Offset(-3).Resize(.Rows.Count + 3).Name = rngNames(irng) End With
原则是命名一个范围,开始3行以上,3行“更长”。
编辑 :根据您更新的问题:
With Range(rngNames(irng)) .Worksheet.Range(.Columns(1).EntireColumn.Cells(2, 1), .Cells(.Cells.CountLarge)).Name = rngNames(irng) End With
请注意,您不应该调用范围没有它的父母限定,例如,你应该使用MyWorksheet.Range(...)
。 这可以让你免费工作。