[VBA]在Offset函数中使用已定义变量的值作为参数
VBA 实现方案
直接使用以下代码即可实现需求,可根据实际表格调整序号列参数:
Sub 批量填充日期() Dim lastRow As Long Dim seqCol As String Dim offsetRow As Long ' 此处修改为实际存储序号的列,比如序号在C列就改为"C" seqCol = "B" ' 定位序号列最后一个有数值的单元格行号 lastRow = Cells(Rows.Count, seqCol).End(xlUp).Row ' 计算Offset所需的动态行参数 offsetRow = -(Cells(lastRow, seqCol).Value - 1) ' 定位序号1对应的日期单元格,批量填充到所有序号对应行的日期列 Cells(lastRow, seqCol).Offset(offsetRow, -1).Copy _ Destination:=Range(Cells(lastRow, seqCol).Offset(offsetRow, -1), Cells(lastRow, seqCol).Offset(0, -1)) End Sub
- 代码默认序号列左侧为日期列,和你要求的
Offset列参数固定为-1的逻辑完全匹配 - 用
End(xlUp)定位最后一行可规避表格空行干扰,适配动态变化的表格长度
运行前请确认序号列是从1开始的连续整数,无空值、非数值内容,避免偏移量计算出错
内容的提问来源于stack exchange,提问作者Here 2 Learn VBA
相关产品推荐
相关产品推荐

