VBA:if-else-statement 运行时错误“-2147417848 (80010108)”

问题描述

我在开发数据输入表单时遇到了与 MS Excel VBA 相关的错误

以下是我的数据输入表单/用户表单:-

Userform

现在,我要做的是:-

1- 拥有 1x PI 编号和所有左侧详细信息(类型、产品类型、子产品类型、产品代码、客户和品牌)

2- 用每个输入的尺寸(订单和包装)复制所有左侧的详细信息
*可以参考用户表单图片中红色突出显示的插图

在我完成以下代码后:-

LocalDateTime newStart = LocalDateTime.Now();
List<Check> checks = generateCheck();
List<String> idListNew = checks.stream().map(Check::getId).collect(Collectors.toList());
List<String> nameListNew = checks.stream().map(Check::getName).collect(Collectors.toList());

比方说,我在用户表单中输入了 XS 和 S 尺寸的数字(订单和包装),XS(早期代码)的详细信息完美地记录在表格中。但是它出现了 S(后来的代码)的运行时错误:- run-time error '-2147417848 (80010108)'

一般情况下,此代码一次只能捕获 1 个尺寸。如果超过 2 个或更多大小,它只会捕获代码中较早者的数据,然后在 if else 结束语句之后的下一个代码中将出现运行时错误,对于较早的大小(例如 XS 大小)。

我真的不知道是什么导致了错误

您可以从此链接获取文件:- Excel File

**请找到名为“Submit2”的宏以查看代码。名为“show_form”的宏用于执行用户表单。

有人可以帮我解决这个问题吗?非常感谢您的帮助:)

解决方法

注意:下面未经测试的代码

使用方括号评估内容的问题。它充其量是多余的,可能是这里错误的根源。请尝试以下操作。

.Cells(iRow,1).Value = Format(Now(),"DD/MM/YYYY")

存储格式化日期的文本值,或

.Cells(iRow,1).Value = Now()
.Cells(iRow,1).NumberFormat = "mm/dd/yy"

存储日期并按照您想要的方式对其进行格式化。