Excel:是否可以将多个ComboBox输出收敛到单个Cell中?

时间:2017-01-24 09:37:08

标签: excel vba excel-vba combobox

上下文:我的Excel工作表包含一个输出到多个工作表的用户表单。此用户表单的功能是日期选择器,希望输出到单个单元格。然而,由于其设计的性质(从这个特定网站的绅士获得,Doug Glancy)它由三个组合框组成。

显示为

[ComboBox1:Day] [ComboBox2:Month] [ComboBox3:Year]

Here is an image for visual reference

是否有任何特定的方法可以将多个输出的结合强制转换为单个单元格?如果没有,那么实现类似结果的替代方法是什么?

编辑:这是我当前用于从用户表单传输数据的代码:

    Sub Transfer()

Dim emptyRow As Long

'Make Sheet2 active
Sheet2.Activate

'Determine emptyRow
emptyRow = WorksheetFunction.CountA(Range("B:B")) + 1

'Transfer information
Cells(emptyRow, 2).Value = TextBoxSON.Value
Cells(emptyRow, 3).Value = TextBoxJobDescription.Value
Cells(emptyRow, 4).Value = TextBoxCustomer.Value
Cells(emptyRow, 5).Value = TextBoxQuantity.Value
Cells(emptyRow, 6).Value = TextBoxDateRequired.Value

Dim LR As Integer
LR = Range("B" & Rows.Count).End(xlUp).Row
Application.EnableEvents = False
Range("A4:BB" & LR).Sort Key1:=Range("A4"), Order1:=xlAscending, _
    Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Application.EnableEvents = True

End Sub

编辑:非常感谢CLR获得答案:

mydate = DateSerial(cboYear.Value, cboMonth.Value, cboDay.Value)
Cells(emptyRow, 6).Value = mydate

此代码可以根据需要精确输出数据。希望这有助于将来的任何人。

无关紧要(但看似必要)信息:嘿,我是新SO用户。经过数小时(和数小时)尝试查找并了解此问题,我还没有到达任何可能的结论,随着时钟的愤怒的指针猛烈地指着我,我被迫(可耻地)问这个问题。

我不是Excel精通,也不是VBA识字。但是,我一直在通过HomeandLearn.org这样的网站慢慢学习语言来克服我的困难,但似乎对这个特殊问题无济于事。我必须提前道歉,因为在我的上述问题中任何不当使用或滥用术语或任何其他无知的误解。在提出这个问题并广泛搜索答案之前,我曾尝试熟悉社区和本网站的规则。

任何帮助将不胜感激。谢谢。)

2 个答案:

答案 0 :(得分:0)

此?

MyDate = ComboBox1.Value & ComboBox2.Value & ComboBox2.Value
Cells(emptyRow, 7).Value = MyDate

答案 1 :(得分:0)

如果您希望单元格仅包含3个框中的文本,请使用:

 mydate = ComboBoxDay.Value & ComboBoxMonth.Value & ComboBoxYear.Value
 Cells(2, 7).Value = mydate

但是,更有用的方法可能是使用实际日期填充单元格:

 mydate = DateSerial(ComboBoxYear.Value, ComboBoxMonth.Value, ComboBoxDay.Value)
 Cells(2, 7).Value = mydate