首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用UserForm和文本框名称作为函数的参数

使用UserForm和文本框名称作为函数的参数
EN

Stack Overflow用户
提问于 2018-06-19 15:36:36
回答 1查看 102关注 0票数 0

我有一个用户表单与许多文本框(描述参数的测试)。我想使用函数来检查每个文本框的值是否在特定的范围内。允许的取值范围出现在excel表格“T_list”中--每个参数都有不同的range.If,如果textbox的值在这个范围内,函数返回"true",否则返回"false“。

下面是我调用这个函数的方法:

代码语言:javascript
复制
g = CheckGreen(Test_Procedure, CWS1, 1)
msgbox(g)

Test_Procedure- name of userform,CWS1 -特定文本框的名称,1 -值的第一个范围(在eacel sheet T_list的表中)

下面是不起作用的函数代码,因为txtbox参数是获取单元格的值,而不是taxtbox名称。我哪里做错了?

代码语言:javascript
复制
Public Function CheckGreen(formName As UserForm, txtbox As MSForms.TextBox, i As Integer) As Boolean
  If formName.txtbox.Value >= Sheets("T_list").Range("T_Start").Offset(i, 0).Value And formName.txtbox.Value <= Sheets("T_list").Range("T_Start").Offset(i, 1).Value Then
formName.txtbox.BackColor = &HFF00& ' Green
Sheets("Test_Data").Range("D_Start").Offset(T_R, 8).Value = formName.txtbox.Value
CheckGreen = True
Else
formName.txtbox.BackColor = &H3535FD ' Red
Sheets("Test_Data").Range("D_Start").Offset(T_R, 8).Value = formName.txtbox.Value
CheckGreen = False
End If
End Function

*根据@Banana评论编辑:

这是我使用字符串选项(per @Banana comment)的函数代码:

代码语言:javascript
复制
Public Function CheckGreen1(formName As UserForm, txtbox As String, i As Integer) As Boolean
If formName.Controls(txtbox).Value >= Sheets("T_list").Range("T_Start").Offset(i, 0).Value And formName.Controls(txtbox).Value <= Sheets("T_list").Range("T_Start").Offset(i, 1).Value Then
formName.Controls(txtbox).BackColor = &HFF00& ' Green
Sheets("Test_Data").Range("D_Start").Offset(T_R, 8).Value = formName.Controls(txtbox).Value
CheckGreen1 = True
Else
formName.Controls(txtbox).BackColor = &H3535FD ' Red
Sheets("Test_Data").Range("D_Start").Offset(T_R, 8).Value = formName.Controls(txtbox).Value
CheckGreen1 = False
End If

End Function

下面是我调用该函数的方式:

代码语言:javascript
复制
g = CheckGreen(CWS1.Value, 1, CWS1)

这个选项仍然不起作用,如果现在的值是字符串,并且IF方程不能将该值识别为数字,则始终转到'False‘(即使该值在允许的范围内)。

请协助,谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-20 03:45:26

代码的工作原理是将字符串值放入CDbl()函数中,该函数将字符串转换为双精度。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50922992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档