excel - 无法在 VBA 中返回正确的变量计数
问题描述
我有一个宏,它根据用户输入的不同时间范围运行场景。如果用户输入 2 个或更多场景作为日期,它可以正常工作 - 如果有人只输入一个日期,它会失败。此块适用于 2 个或更多:
countofscenarios = Range(Range("B5"), Range("B5").End(xlDown)).Count
我只是不知道如何使其仅在输入 1 个日期的情况下工作 - 我尝试了以下不同的变体:
If Range("B5") <> "" And Range("B6").End(xlDown).Count = 0 Then
countofscenarios = 1
Else
countofscenarios = Range(Range("B5"), Range("B5").End(xlDown)).Count
End If
但我收到一个溢出错误。抱歉缺少工作数据,但如果有帮助,我可以删除一些内容。提前致谢。
解决方案
你的答案几乎就在那里:
If Range("B5") = "" Then
MsgBox("Enter a date")
Exit sub
ElseIF Range("B6") = "" AND Range("B5") <> "" Then
countofscenarios = 1
Else
countofscenarios = Range(Range("B5"), Range("B5").End(xlDown)).Count
End if
我输入了一些“错误处理”以避免在没有输入任何日期的情况下运行代码(if 语句的第一部分)。然后检查 B5 中有值但 B6 中没有值的事件,在这种情况下将计数设置为 1(if 语句的第二部分)。最后是您在 Else 子句中的原始计数器。
或者,您可以使用标题行。当 B5 中没有值时,这将为您提供 0。当然还有其他单元格中的计数。但是,这仅在 B4 中有值时才有效。
countofscenarios = Range(Range("B4"), Range("B4").End(xlDown)).Count -1
推荐阅读
- python - 当启用急切执行时,传递给 Optimizer.compute_gradients 的 `loss` 应该是一个函数。--> 优化器.minimize()
- excel - 在记录的代码中创建动态自动填充范围
- python - 如何进行仅包含列表中值的分组?
- javascript - 使用 React.js 上传图片以存储在 MongoDB 中
- python - matplotlib 是否将 np.int 更改为在 x 轴上自动浮动?
- python - ValueError:缓冲区 dtype 不匹配,预期为“双”,但得到 Python 对象
- android - 在 Android Studio 中尝试调试时出现意外的 JDWP 错误 35。断点请求未暂停目标 VM
- node.js - 如何使用 express mongodb 或 mongoose 用新数组覆盖我的数组
- android-studio - 单击android studio终端时出错
- java - [求助]javax.servlet.ServletException:Servlet执行抛出异常