You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在VBA中取Bookings与Archive工作表A列最大值+1生成新ID

解决VBA取两个工作表列最大值的问题

你的错误在于工作表引用格式错误,代码里的Bookings!,A:A多了个逗号,而且直接用Range跨表引用的方式不对。下面是正确的修改方案:

核心修改点

  • 正确引用两个工作表的A列范围:用Sheets("表名").Range("列范围")的格式分别指定两个表
  • 推荐用Application.Max(比WorksheetFunction.Max容错性更强,遇到非数值内容不会直接报错)来获取两个范围的最大值

修改后的完整代码

' 新增预订将自动从Bookings和Archive表A列最大值+1获取ID序列并填入TB21
' 若用户在TB22中输入现有ID用于查找/删除,则使用该ID
If TextBox22 = "" Then
    ' 同时取两个工作表A列的最大值,加1后赋值给TextBox21
    TextBox21 = Application.Max(Sheets("Bookings").Range("A:A"), Sheets("Archive").Range("A:A")) + 1
Else
    TextBox21 = TextBox22.Value
End If

额外优化说明

  • 去掉了原代码里的Sheet5.Select,VBA中尽量避免使用Select/Activate,直接通过工作表对象引用范围更高效、稳定
  • 如果你的Bookings工作表确实对应Sheet5,也可以用Sheet5.Range("A:A")替代Sheets("Bookings").Range("A:A"),两种写法都有效,用表名更直观

内容的提问来源于stack exchange,提问作者nickC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 01:34:55