Excel 如果用户选择组合框值,是否使用文本框值?

Excel 如果用户选择组合框值,是否使用文本框值?,excel,vba,Excel,Vba,我在userform中创建了一个组合框: private sub Userform_Activate cmbLocation.AddItem "Field" cmbLocation.AddItem "Remote" cmbLocation.AddItem "Other" end sub 当用户选择Other时,我想要一个文本框来填充自由格式的文本输入。当用户执行此操作时,我希望该文本是填充到工作表表中的.val

我在userform中创建了一个组合框:

private sub Userform_Activate
    cmbLocation.AddItem "Field"
    cmbLocation.AddItem "Remote"
    cmbLocation.AddItem "Other"
end sub
当用户选择
Other
时,我想要一个文本框来填充自由格式的文本输入。当用户执行此操作时,我希望该文本是填充到工作表表中的.value


这可能吗?

创建一个文本框,并在激活用户表单时将其设置为
.visible=False
。然后使用if语句可以从组合框或文本框输出数据

Private Sub UserForm_Activate()
    Me.txtLocation.Visible = False
    Me.cmbLocation.AddItem "Field"
    Me.cmbLocation.AddItem "Remote"
    Me.cmbLocation.AddItem "Other"
End Sub

Private Sub cmbLocation_Change()
    If Me.cmbLocation.Value = "Other" Then
        Me.txtLocation.Visible = True
    Else
        Me.txtLocation.Visible = False
    End If
End Sub

Private Sub CommandButton1_Click()
    If Me.txtLocation.Visible = True Then
        ThisWorkbook.Sheet1.Range("A1").Value = Me.txtLocation.Value
    Else
        Thisworkbook.Sheet1.Range("A1").Value = Me.cmbLocation.Value
    End If
    
End Sub

根据需要修改工作表和范围

创建一个文本框,并在激活用户表单时将其设置为
.visible=False
。然后使用if语句可以从组合框或文本框输出数据

Private Sub UserForm_Activate()
    Me.txtLocation.Visible = False
    Me.cmbLocation.AddItem "Field"
    Me.cmbLocation.AddItem "Remote"
    Me.cmbLocation.AddItem "Other"
End Sub

Private Sub cmbLocation_Change()
    If Me.cmbLocation.Value = "Other" Then
        Me.txtLocation.Visible = True
    Else
        Me.txtLocation.Visible = False
    End If
End Sub

Private Sub CommandButton1_Click()
    If Me.txtLocation.Visible = True Then
        ThisWorkbook.Sheet1.Range("A1").Value = Me.txtLocation.Value
    Else
        Thisworkbook.Sheet1.Range("A1").Value = Me.cmbLocation.Value
    End If
    
End Sub

根据需要修改工作表和范围

hm,它以前工作过(根据真/假语句显示文本框),但它随机停止遵循逻辑,从不隐藏文本框。有什么线索吗?你把哪个盒子的名字都改了吗?一定是出了什么问题,又开始工作了。谢谢你的帮助!嗯,它以前是工作的(根据真/假语句显示文本框),但它随机停止遵循逻辑,从不隐藏文本框。有什么线索吗?你把哪个盒子的名字都改了吗?一定是出了什么问题,又开始工作了。谢谢你的帮助!