提问人:SGRacing 提问时间:8/26/2023 最后编辑:Scott CranerSGRacing 更新时间:8/29/2023 访问量:35
根据 Combobox 的输入将数值指定为公式的变量
Assign Numeric Value as a Variable for an Equation Based on Input From Combobox
问:
我有一本工作簿,每张纸上都有各种用于焊接工程的“计算器”。对于其中一个计算器,方程式基于材料密度,但不是让用户输入正确的值,而是我想使用一个带有材料列表的组合框,然后我可以让宏使用在方程式中分配正确的密度值。
我以前没有使用过 combobox,所以老实说我不知道如何完成这一步,到目前为止,我的搜索还没有产生任何有用的东西。
当工作簿打开时,我有一个组合框填充材料(位于“ThisWorkbook”中),一旦我到达可以分配的点,比如说 .2854 到工作表宏中的“钢”(“存放的重量”),我就可以得到其余的。
Sub Workbook_open()
With ThisWorkbook.Worksheets("Deposited Weight").ComboBox1
.AddItem "Steel"
.AddItem "Stainless"
.AddItem "Aluminum"
End With
End Sub
答:
0赞
taller
8/26/2023
#1
请考虑使用 ComboBox 属性而不是代码。无需编码即可实现。
在 ComboBox 上填充材料和价值列可改善用户体验。
性能 | 价值 | 注意 |
---|---|---|
ColumnCount | 2 | 指定 ComboBox 中显示的列数 |
边界列 | 2 | 使用第 2 列 use 作为 ComboBox 的值 |
链接单元 | 答1 | 使用 combobox 的值更新单元格 A1 |
ListFillRange | $A$15:$B$18 | 设置用于填充组合框的工作表区域 |
请参阅 Microsoft 文档:
ControlFormat.LinkedCell 属性 (Excel)
ControlFormat.ListFillRange 属性 (Excel)
如果目标是从 VBA 代码中的组合框中检索所选值,则可以使用 Change 事件
Private Sub ComboBox1_Change()
MsgBox "Selection is " & Me.ComboBox1.Value
End Sub
0赞
SGRacing
8/29/2023
#2
我能够找到一个解决方案,允许我将所有内容都保留在宏中,而不是在工作表的某个地方构建一个表格。我真的很想保持计算器表的清洁。
我发现了另一个问题,其中需要组合框的值作为打开灯泡的字符串,我可以使用几个 if-then 语句根据组合框的输入为单个变量定义不同的值。
这不是最有效的解决方案,但对于下拉列表中的 3 个可选选项,它就可以工作。(Combobox名称由“ComboBox1”改为“CboMaterials”)
Dim MatType as String
MatType = Me.CboMaterials.Text
If MatType = "Steel" Then
Dens = 0.2854
End If
If MatType = "Stainless" Then
Dens = 0.2901
End If
If MatType = "Aluminum" Then
Dens = 0.0975
End If
评论
0赞
Frank Ball
8/29/2023
如果您有添加或编辑此数据的最微小的可能性,请使用查找表。始终围绕着您不会总是在身边的想法进行构建,因此必须有人维护此文件。如果您突然变得富有,并认为阿鲁巴岛的生活听起来比您目前居住的地方更具吸引力,那么其他人将不得不支持这个工具。查找表使此过程大大简化。因此,如果您的继任者必须将 Titanium 添加到您的计算器中,那么他们所要做的就是将记录添加到查找表中,一切都无需编辑代码即可进行
评论