当前位置: 首页 > 知识库问答 >
问题:

Excel VBA -组合框

钱瑞
2023-03-14

我有一个带有2个组合框(组合框1和组合框2)以及“保存”和“取消”按钮的用户表单。我的目标是,每当我选择一个组合框中的一个项目时,另一个应该被“阻止”或禁用。因此,当按下保存按钮时,它只能从这两个组合框之一中保存一个项目。

这就是我已经走了多远:

If ComboBox1.Text = "" Then Cancel = 1 
    MsgBox "Data couldn't be saved. Insert item."
ElseIf Combobox1.Value > 0 And Combobox2.Text = "" Then 
    If Combobox2.Text = "" Then Cancel = 1 MsgBox "Data couldn't be saved. Insert item."
ElseIf Combobox2.Value > 0 And Combobox1.Text = "" Then
    If Combobox1.Value > 0 And Combobox2.Value > 0 Then Cancel = 1 MsgBox "Select only one item."

现在的问题是,当我为combobox1选择一个项目,为combobox2选择一个项目时,它仍然保存它。

共有1个答案

陆畅
2023-03-14

在用户窗体中,使用以下选项:

Option Explicit

Private Sub CancelButton_Click()
    'reset boxes
    Me.ComboBox1.Value = vbNullString
    Me.ComboBox2.Value = vbNullString
End Sub

Private Sub ComboBox1_Change()
    ' disable box 2 if box 1 has a value
    Me.ComboBox2.Enabled = (Me.ComboBox1.Value = vbNullString)
End Sub

Private Sub ComboBox2_Change()
    ' disable box 1 if box 2 has a value
    Me.ComboBox1.Enabled = (Me.ComboBox2.Value = vbNullString)
End Sub

Private Sub SaveButton_Click()
    If Me.ComboBox1.Value <> vbNullString Then
        MsgBox "Box 1 has the value"
    ElseIf Me.ComboBox2.Value <> vbNullString Then
        MsgBox "Box 2 has the value"
    Else
        MsgBox "In no box was selected a value"
    End If
End Sub
 类似资料:
  • 正如标题所暗示的,我正在尝试通过用户表单将数据添加到新行中。我遇到的问题是布局如下: 标题1月2月3日4月5月6月7月8月9月10月11月12日总收入(此处需要插入数据)传出(同样,需要在此处添加另一组数据) 实现这一目标的代码是什么,因为目前它低于离任,但我希望它介于收入和离任之间 如果您需要更多信息,我很乐意讨论。 提前谢谢

  • 组合变换是一组多元变换形式,每次变换是由多个节点出发,经过相互计算最终向其下游节点进行传播。在实现的过程中,通常需要借助一个对象把多个变换管理起来,例如源码中的 EasyReact/Core/NodeTransforms/EZRCombineTransformGroup.h。下面介绍下全部的组合变换形式。 combine 响应式编程经常会使用 a := b + c 来举例,意图是当 b 或者 c

  • 组合操作符 组合操作符允许连接来自多个 observables 的信息。 发出值的顺序、时间以及结构是这些操作符的主要变化。 内容 combineAll combineLatest :star: concat :star: concatAll forkJoin merge :star: mergeAll pairwise race startWith :star: withLatestFrom :

  • 使用组件的目的就是通过构建模块化的组件,相互组合组件最后组装成一个复杂的应用。 在 React 组件中要包含其他组件作为子组件,只需要把组件当作一个 DOM 元素引入就可以了。 一个例子:一个显示用户头像的组件 Avatar 包含两个子组件 ProfilePic 显示用户头像和 ProfileLink 显示用户链接: import React from 'react'; import { rend

  • 我有两个组合框。我正在填充这样的两个组合框。组合框1和2的名称是cmbpartyName和cmbprefPT2。 在这里,我从combox1中选择一个值,在它所选的索引更改事件中,如下所示。 由于两个组合框具有相同的值,如何从第二个组合框cmbPrefPT2中删除第一个组合框的选定值?

  • 问题内容: 我有一个由7个数字组成的数组(1,2,3,4,5,6,7),我想制作5个数字对,例如(1,2,3,4,5),(1,2,3 ,4,6,),(1,2,3,4,7)。(1,2,3,4,5)等于(4,5,3,1,2) 我想知道PHP中是否有函数或任何可以执行此操作的算法?我不知道从哪里开始。你能帮助我吗 ? 我想将7个给定数字的所有组合(它们从数组中取出)放入5个插槽中,而无视顺序 问题答案:

  • 我的表单上有2个组合框(在表单加载事件中)。第一个组合框在表单加载后从选择语句中获取一个值。我想在我的第二个组合框中使用该值。这是我的代码: 1st组合框= cbDelivery 2de组合框= cbOrderNo 此组合框位于: private void CB delivery _ selectedindex changed(对象发送方,事件参数e) 因此,一旦我从1ste组合框中选择一个值,我

  • 组合流允许将多个不同的流组合成一个流,这两个流可以分别为流式传输和非流式传输。 构建组合流 var combineStream = new CombineStream() 函数原型 CombineStream(Stream left, Stream right, bool closed = false); 参数 描述 left 左侧的流 right 右侧的流 closed 是否在流读取完成后自