如何在VBA用户窗体中随机将某个Hrs文本框值改为100?
解决方案
实现思路
- 先初始化随机种子(避免每次随机结果重复),生成1到13之间的随机整数,这个数对应要修改的Hrs文本框序号
- 等所有文本框加载完初始数据后,定位到随机选中的Hrs文本框,将其值改为100(和原代码保持两位小数的格式)
修改后的完整代码
Private Sub cmbOp1_AfterUpdate() Dim i As Integer Dim randomIndex As Integer ' 初始化随机种子,保证每次随机结果不同 Randomize ' 生成1到13之间的随机整数,对应目标Hrs文本框的序号 randomIndex = Int((13 * Rnd) + 1) ' 循环加载所有Name和Hrs文本框的初始数据 For i = 1 To 13 Me.Controls("Name" & i).Value = Sheets("Employee").Range("B" & i + 1).Value Me.Controls("Hrs" & i).Value = Format(Application.WorksheetFunction.VLookup(Me.Controls("Name" & i), Sheets("Employee").Range("Employee"), 4, 0), "0.00") Next i ' 修改随机选中的Hrs文本框值为100(保持两位小数格式) Me.Controls("Hrs" & randomIndex).Value = Format(100, "0.00") End Sub
可选调整
- 如果不需要保留小数格式,直接把最后一行改成
Me.Controls("Hrs" & randomIndex).Value = "100"即可 Randomize只需调用一次,放在生成随机数之前,确保每次打开用户窗体时随机选中的文本框不同
内容的提问来源于stack exchange,提问作者Jack van Hoof
相关产品推荐
相关产品推荐

