【发布时间】:2015-06-10 22:06:49
【问题描述】:
我有以下公式="AI2:AI"&MATCH(REPT("z",255),ILS_IMPORT!A:A),它会引出一个预定义的列AI2:AI3576。从本质上讲,该公式为我提供了数据位于 A 列中的确切最后一行编号。但是,可能存在这样一种情况,即 A 列中数据集的末尾有空白,但 B 列中的数据去下至B4000。整个前提是获取A列到AI的最后一行数据,这样我就可以把当前日期放在AI2:AI3576或者AI2:AI4000这个范围内,然后再把数据集导入access数据库。
两个问题(Microsoft Excel 2010):
1) 有没有人有一个更简单的公式可以捕获上述范围?
2) 一旦确定了范围,最好使用 VBA 将当前日期简单地粘贴到预定义的范围中。我想这很简单,因为我们有范围并且我们有现在()的日期。
需要注意的是,我有这个 VBA 代码可以告诉用户最后一个单元格的行号,但他们仍然需要执行复制和粘贴功能。我宁愿不让用户执行这些步骤。
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
非常感谢您的想法和创造力。
【问题讨论】:
-
为了清楚起见,'数据位于 A 列中的确切最后一行编号' 应该读取 'a 所在的确切最后一行文本值 位于 A' 列中。查找列中的最后一个数字是不同的。
-
re:将当前日期置于 AI2:AI3576 或 AI2:AI4000 范围内。您的代码被注释说日期应该在 AG2 中。
标签: excel excel-2010 vba