【发布时间】:2018-05-29 09:47:35
【问题描述】:
我有一个生成电子邮件的 vba 代码。我希望主题是列表中第一个和最后一个单元格的数据。问题是,我的列表没有固定长度,有时它包含 5 条数据,有时 8 条等。无论列表的长度如何,我如何告诉 vba 选择第一个和最后一个单元格?
谢谢
【问题讨论】:
-
在列表中查找最后使用的行。在一个循环中收集所有值并将其粘贴到电子邮件的 .subject 中。
我有一个生成电子邮件的 vba 代码。我希望主题是列表中第一个和最后一个单元格的数据。问题是,我的列表没有固定长度,有时它包含 5 条数据,有时 8 条等。无论列表的长度如何,我如何告诉 vba 选择第一个和最后一个单元格?
谢谢
【问题讨论】:
对我来说,最佳做法是只在工作表上设置计算第一行和最后一行的单元格(可以采用不同的方法),然后为这些单元格指定一个范围名称,例如 FirstRow 和 LastRow。然后在您的 vba 中引用这些单元格以使您的代码动态化。
例如:
firstRow = Range("FirstRow)
lastRow = Range("lastRow")
test = range(cells(firstRow,lastRow))
-- 注意我已经很多年没有写过VBA了,所以我是凭记忆写的,所以可能不准确。
当然,您可以使用前面提到的 xlDown 方法完全在 VBA 中完成所有操作,但我更喜欢它在主页上的透明度,以便在出现问题时轻松发现。
【讨论】:
Range("A1").End(xlDown).Value
单元格是您要开始的位置,End 部分一直移动到末尾
【讨论】: