相关疑难解决方法(0)

如何检测用户是否选择取消InputBox VBA Excel

我有一个输入框,要求用户输入日期.如果用户单击取消或关闭输入对话框而不是按下确定,如何让程序知道停止.

就像是 if str=vbCancel then exit sub

目前,用户可以点击OK或取消,但该程序仍然运行

str = InputBox(Prompt:="Enter Date MM/DD/YYY", _ Title:="Date Confirmation", Default:=Date) 在此输入图像描述

excel vba

21
推荐指数
1
解决办法
15万
查看次数

在VBA中使用StrPtr函数有什么好处和风险?

在寻找一种方法来测试用户何时取消时InputBox,我偶然发现了这个StrPtr功能.我相信它会检查一个变量是否被分配了一个值,如果它从未被分配则返回零,如果是,则返回一些神秘数字.

这似乎是一个有用的功能!我从这段代码开始:

Dim myVar as string
myVar = InputBox("Enter something.")
MsgBox StrPtr(myVar)
Run Code Online (Sandbox Code Playgroud)

如果用户取消,消息框显示零.

太棒了!但是为什么有些人坚持认为StrPtr永远不会被使用?我读它不受支持.为什么这么重要?

一个好的答案将解释好处(超出我上面的例子)和使用该StrPtr功能的风险,可能你如何使用(或不使用)它,而不是就是否每个人都应该使用它而发表意见.

vba

8
推荐指数
2
解决办法
7319
查看次数

输入框的麻烦

我目前正在使用MS Access VBA中的InputBoxes.我正在检查验证和处理用户如何通过按OK或取消按钮与InputBox交互.

纠正我,如果我错了,但InputBoxes可以返回任何数据类型,默认情况下返回一个字符串?例如:

Dim userInputValue As String

'Text to display, Title, Default Value
userInputValue = InputBox("Please enter a #", "Determine Limit", 10000)

If userInputValue = "" Then
    MsgBox ("You pressed the cancel button...")
End If
Run Code Online (Sandbox Code Playgroud)

如果用户按下取消按钮,则运行正常.

但当我交换这个整数值时,如下所示:

Dim userInputValue As Integer
'Text to display, Title, Default Value
userInputValue = InputBox("Please enter a #", "Determine Limit", 10000)

If userInputValue = 0 Then
    MsgBox ("You pressed the cancel button...")
End If
Run Code Online (Sandbox Code Playgroud)

我收到一个Type Mismatch: Runtime Error '13'为什么这个?当我调试代码并查看返回的内容时,我发现userInputValue实际上是0,这正是我正在检查的内容.那么InputBox实际上返回一个字符串的问题是什么?

ms-access vba ms-access-2007 access-vba

6
推荐指数
2
解决办法
3万
查看次数

标签 统计

vba ×3

access-vba ×1

excel ×1

ms-access ×1

ms-access-2007 ×1