excel - 如何在 VBA 中使用组合框值设置 If Then
问题描述
在 Sheet1 中,我有一个国家下拉列表,配置为名为 COUNTRY 的 ComboBox 和名为“FEES”的 TextBox。可能的选择是西班牙、葡萄牙和德国。如果选择的选项是西班牙,我想在 Sheet2 的单元格 A2 中写入 FEES 的值,如果我选择德国,我想在 Sheet2 的单元格 A3 中写入 FEES 的值,如果选项是葡萄牙,我将写入A4 来自 Sheet2 的 FEES 值。我尝试了不同的选择,但没有一个有效
If Sheet1.Country.Value = "Spain" Then
Worksheet("Sheet2").Cells(2,1).Value = Sheet1.Fees.Value
End If
If Sheet1.Country.Value = "Germany" Then
Worksheet("Sheet2").Cells(3,1).Value = Sheet1.Fees.Value
End If
If Sheet1.Country.Value = "Portugal" Then
Worksheet("Sheet2").Cells(4,1).Value = Sheet1.Fees.Value
End If
解决方案
请在工作表代码模块中粘贴下一个代码:
Option Explicit
Private Sub COUNTRY_Change()
Dim sh As Worksheet, cb As MSForms.ComboBox, txtF As MSForms.TextBox, no As Long
Set sh = Worksheets("Sheet2")
Set cb = ActiveSheet.OLEObjects("COUNTRY").Object
Set txtF = ActiveSheet.OLEObjects("fees").Object
If cb.value = "Spain" Then
no = 2
ElseIf cb.value = "Portugal" Then
no = 3
ElseIf cb.value = "Germany" Then
no = 4
Else
Debug.Print "Something else"
End If
sh.cells(no, 1).value = txtF.Text
End Sub
可以通过右键单击工作表名称并选择“查看代码”来访问工作表代码模块...
推荐阅读
- c++ - 当一个类/结构在没有 RVO 的情况下返回时会发生什么?
- apache-kafka - 如何将单个 Kafka 服务器中使用的 Kafka 主题迁移到具有复制因子 2 的 Kafka 集群?
- java - 如何为具有不同配置文件的两个不同项目设置 Maven
- google-cloud-platform - 为什么不重新发送消息?
- angular - 需要获取数组元素
- powershell - 如何将一个文件夹中的多个文件压缩到一个压缩文件夹中?
- statistics - 需要根据邻域密度选择关键点的建议
- stata - 有没有更有效的方法来运行三个统计回归与不同的参考组?
- java - 基于 jpanel 内容的滚动条
- node.js - 在 node.js 中使用图像水印时出错