gpt4 book ai didi

vba - 带选项的输入提示

转载 作者:行者123 更新时间:2023-12-02 22:04:56 27 4
gpt4 key购买 nike

有没有办法生成在提示本身中有多个选项的输入提示。用户可以选择所提供的任一选项。截至目前,我正在使用“输入字符串”来执行此操作,然后设置变量的值。例子:选择哪张板材?表1?表2?表3?

最佳答案

如果您的意思是使用 InputBox() 函数:

答案:不,你不能。 InputBox 内置于 VBA 中,无法修改。

但是您可以编写自己的输入框。这样做:

  1. 您必须创建一个名为 formComboInput 的用户表单,其中包含组合框、标签和按钮等。

  2. 在表单代码中创建一个名为 ReturnVal 的公共(public)整数变量。

  3. 将值 -1 分配给 formComboInput.InialiseForm 子项中的 ReturnVal,并填充该子项中的组合框。

  4. 在用户窗体按钮点击代码中,将formComboInput.comboInput.ListIndex的值赋给ReturnVal,并隐藏窗体。

当表单加载时,使用子例程(例如InitialiseForm())填充组合框。您可以将组合框范围存储在单独的工作表或静态数组中。

然后插入类似于下面的代码(抱歉未经测试):

' User form code:
Option Explicit

public ReturnVal as integer

sub InitialiseForm()
dim i as integer

ReturnVal = -1

comboInput.Clear

for i = 1 to ThisWorkbook.Worksheets.Count ' Populates combobox
comboInput.AddItem ThisWorkbook.Worksheets(i).Name
next

end sub

btnOK_Click()
ReturnVal = comboInput.ListIndex ' Change ReturnVal from -1 to the listbox index
Me.Hide
End Sub

' Module/sheet code:
Option Explicit

function ShowComboInput(InputBoxCaption as String, DefaultResult as String) as String

with formComboInput
.InitialiseForm() ' Make the combo box populate etc
.labelCaption = InputBoxCaption
.Show vbModal ' CODE EXECUTION PAUSES HERE UNTIL FORM IS CLOSED

if .ReturnVal > -1 then
ShowComboInput = .comboInput.Value ' Returned if user clicks OK button
else
ShowComboInput = DefaultResult ' Returned if user closes form
end if

end with

end function


sub InputBoxExample() ' Call this sub to test the above code

MsgBox ShowComboInput("Testing", "User didn't click OK button!")

end sub

此代码未经测试,因此可能需要一些调整,但总的来说,这就是我实现自定义输入框的方式。

关于vba - 带选项的输入提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17686656/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com