我有一个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)
但它只是继续将命名范围推到页面上。
我一直想做的是:
答案 0 :(得分:2)
假设您的命名范围已经在右侧结束,快速修复将是:
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
请注意,您不应该在没有父级资格的情况下调用Range,例如:你应该使用MyWorksheet.Range(...)
。这使您可以不受任何活动的影响。