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

时间:2015-06-10 22:06:49

标签: excel excel-vba excel-2010 vba

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

两个问题(Microsoft Excel 2010):
1)是否有人有一个更容易的公式,可以捕捉上述范围? 2)一旦确定了范围,将优选使用VBA将当前日期简单粘贴到该预定范围内。我想这很简单,因为我们有范围,我们有日期Now()。

作为一个警告,我有这个VBA代码将告诉用户最后一个单元格的行号,但他们仍然需要执行复制和粘贴功能。我宁愿让用户不要执行这些步骤。

AI2:AI4000

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

1 个答案:

答案 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.ResizeRange.Offset命令调整范围以接收当前日期。