将当前date粘贴到单元格内指定的预定义范围内

我有以下公式, ="AI2:AI"&MATCH(REPT("z",255),ILS_IMPORT!A:A) ,它引出一个预定义的列AI2:AI3576 。 从本质上讲,该公式为我提供了列A中数据所在的确切最后一行数。但是,可能会出现这样的情况,即列A中数据集的末尾有空白,但列B中的数据降至B4000 。 整个前提是从列A到AI中获取最后一行数据,以便在将数据集导入访问数据库之前,将当前date放在AI2:AI3576AI2:AI4000的范围内。

两个问题(Microsoft Excel 2010):
1)有没有人有一个更容易的公式,将捕捉上述范围?
2)一旦范围已经build立,使用VBA将当前date简单粘贴到该预定范围内将是优选的。 我想这是非常简单的,因为我们会有范围,我们有Now()的date。

作为一个告诫,我有这个VBA代码将告诉用户最后一个单元格的行号,但他们仍然必须做复制和粘贴function。 我宁愿没有用户做这些步骤。

 Sub LastRowofData() Dim ws As Worksheet Dim rng1 As Range Set ws = Sheets("ILS_IMPORT") Set rng1 = ws.Columns("A:AI").Find("*", ws.[a1], xlValues, , xlByRows, xlPrevious) If Not rng1 Is Nothing Then MsgBox "The last cell with data is " & rng1.Address(0) & " , therefore copy the current date in AG2 down to the row indicated." Else MsgBox ws.Name & " columns A:AI are empty", vbCritical End If End Sub 

你的想法和创造力非常感谢。

通过使用With … End With语句连续地重新定义您所指的区域,您可以在不指定范围的情况下完成此操作。

 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属性确定,然后逐步Range.Resize和Range.Offset命令形成范围以接收当前date。