vba - 使用用户窗体和文本框名称作为函数的参数
问题描述
我有一个带有许多文本框的用户表单(描述测试参数)。我想使用函数来检查每个文本框的值是否在特定范围内。允许值范围出现在 excel 表“T_list”中 - 每个参数都有不同的范围。如果文本框的值在该范围内,则该函数将返回“true”,否则将返回“false”。
这是我调用此函数的方式:
g = CheckGreen(Test_Procedure, CWS1, 1)
msgbox(g)
Test_Procedure - 用户表单的名称,CWS1 - 特定文本框的名称,1 - 值的第一个范围(在 eacel 工作表 T_list 的表中)
这是不起作用的函数代码,因为 txtbox 参数是获取单元格的值而不是 taxtbox 名称。我做错了什么?
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 评论编辑:
这是我使用字符串选项的函数代码(根据@Banana 评论):
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
这是我调用函数的方式:
g = CheckGreen(CWS1.Value, 1, CWS1)
这个选项仍然不起作用,因为现在的值是字符串,并且 IF 方程不将该值识别为数字,并且总是变为“假”(即使该值在允许的范围内)。
请大家帮忙,谢谢
解决方案
该代码通过将字符串值放入函数 CDbl() 中来工作,该函数将字符串转换为双精度。
推荐阅读
- c++ - 了解`_mm_prefetch`
- r - 如何防止在R中使用polymode markdown导出文档后打开firefox?
- excel - 自动将新工作表名称添加到公式中的 AVERAGE 函数
- c# - foreach 循环后的新行
- python - 对 jupyter 中的命令说不
- spring-cloud-stream - Spring Cloud Stream - 多种功能
- r - 使用特定分配的数字循环
- powershell - 每月清理日志的 Powershell 脚本
- amazon-web-services - Terraform、ElasticSearch、模块、cloudposse/terraform-aws-elasticsearch
- pyaudio - Pa_GetDeviceInfo() 和 PaAsio_GetAvailableBufferSizes() 的行为