我有以下公式store_id
,它会引出预定义的列="AI2:AI"&MATCH(REPT("z",255),ILS_IMPORT!A:A)
。从本质上讲,该公式为我提供了数据驻留在A列中的确切的最后一个行号。但是,可能存在A列中数据集末尾有空白的情况,但是在B列数据中下至AI2:AI3576
。整个前提是从A列到AI获取最后一行数据,这样我就可以在将数据集导入访问数据库之前将当前日期放在B4000
或AI2:AI3576
范围内。
两个问题(Microsoft Excel 2010):
1)是否有人有一个更容易的公式,可以捕捉上述范围?
2)一旦确定了范围,将优选使用VBA将当前日期简单粘贴到该预定范围内。我想这很简单,因为我们有范围,我们有日期Now()。
作为一个警告,我有这个VBA代码将告诉用户最后一个单元格的行号,但他们仍然需要执行复制和粘贴功能。我宁愿让用户不要执行这些步骤。
AI2:AI4000
非常感谢您的想法和创造力。
答案 0 :(得分:1)
通过使用With...End With statements连续重新定义您所指的区域,您可以在不指定范围的情况下完成此操作。
Dim ws As Worksheet
Set ws = Sheets("ILS_IMPORT")
With ws
With Intersect(.Cells(1, 1).CurrentRegion, .Columns("A:AI"))
If CBool(Application.CountA(.Offset(1, 0))) Then
With .Offset(1, 34).Resize(.Rows.Count - 1, 1)
.Cells = Date
End With
Else
MsgBox .Parent.Name & " columns A:AI are empty", vbCritical
End If
End With
End With
首先使用Range.CurrentRegion property确定数据的主要边界,然后使用渐进Range.Resize和Range.Offset命令调整范围以接收当前日期。