首页 > 解决方案 > Excel VBA 中有没有办法检查一个工作簿中的数字序列,找到最后一个,然后在另一个工作簿中继续?

问题描述

我正在尝试自动通过一个工作簿的 LastLineNo (每次增加 1 的线性数字序列),找到数据底部的最后一个值,并使用在中找到的最终值启动不同工作簿的 LastLineNo第一个工作簿+1。

编辑:经过反复试验,我相信我已经接近弄清楚了。现在,我的代码看起来像这样:

Dim lineNo As Long
Dim filePath As String
Dim nextValue As Long
Dim trial As Workbook

filePath = "C:\Users\Michael Christ\Documents\Excel Work INP Automation Project\Trialbook.xlsm"
Set trial = Workbooks.Open(filePath)

lineNo = Range("B2").End(xlDown).Select

Workbooks(1).Activate
Range("B2").Select
lineNo.DataSeries rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, step:=1, stop:=Range("B2").End(xlDown), Trend:=False

这是一个公共子程序。我在这个阶段遇到的问题是,当我运行说“编译错误:无效的限定符”时出现错误,它以黄色突出显示过程的标题,并突出显示附加到 DataSeries 对象的变量名 lineNo。任何人都知道它为什么这样做?

感谢您在我第一次提出这个问题时提出的建议,它们非常有帮助。干杯。

标签: excelvbasequence

解决方案


由于数字是连续的,您只需要旧电子表格该列中的最大数字。因此,假设您的数字在第一个工作表的 A 列中,并且该工作表称为“Sheet1”,您的工作簿称为 OLD.xls 和 New.Xls。最简单的方法是从打开两个工作簿开始。然后在要开始新序列的单元格中的 New.xls 中,您只需键入

    =MAX([Old.xls]Sheet1!A:A)+1

现在,当您关闭 OLD.xls 时,Excel 将编辑公式以自动存储 old.xls 的完整路径。然后您可以保存 new.xls。


推荐阅读