2017-01-24 3 views
0

コンテキスト:My Excelワークシートは、複数のシートに出力するユーザーフォームで構成されています。このユーザフォームの機能は、日付セレクタであり、単一のセルに出力することが望ましい。しかし、そのデザインの性質上(この特定のサイトの紳士から得られたDoug Glancy)、それは3つのコンボボックスで構成されています。Excel:複数のComboBox出力を1つのセルに収束させることは可能ですか?

それはとして表示されます。

[ComboBox1の:デイ] [ComboBox2:月] [ComboBox3:年]

Here is an image for visual reference

いくつかのconcrescenceを強制する任意の特定の方法があります単一のセルに出力しますか?そうでなければ、同様の結果を達成するための代替方法は何でしょうか?

編集:ここではユーザーフォームからデータを送信するための私の現在のコードです:

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のようなサイトを通してゆっくりと言語を習っている。(私は恥ずかしく思っている)私の困難を克服するために、しかしこの特定の問題を一見役に立たないように。私は、上記の質問でなされた用語の不適切な使用または誤用、または知られていない他の誤解について事前に謝罪する必要があります。 dこの質問をする前に、このサイトのコミュニティとルールに慣れ親しみ、広範囲に答えを探しました。

ご協力いただければ幸いです。ありがとうございます。)

答えて

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 
+0

奇妙なことに、日付出力は日付入力と実際には異なります。例えば、06 // 03/2017は、07/09/2011の結果をシートに出力します。これがなぜ起こっているのかについてのアイディアはありますか?'mydate = DateSerial(cboDay.Value、cboMonth.Value、cboYear.Value)セル(emptyRow、6).Value = mydate' – Zemwot

+0

2番目のオプションを使用しているとすれば、正しい順序で 'DateSerial'のパラメータを提供します。つまり、** Year **、** Month ** ** ** Day **? – CLR

+0

ああ、私は、DateSerial関数(必要なもの)が必要な書式を持っていて、シートに送信された順序を表すものと仮定していただけです。これは現在、完全に必要に応じて機能します。私はあなたの機能的な答えを反映するためにメインのポストを更新します。 (PS:ありがとう!) – Zemwot

0

これは?

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

一見、正しいと思われます。どうもありがとうございました!しかし、1つの問題が残っています:日付は、全体の長い整数として出力されます。たとえば、日付の形式で#######と表示されます(例:31012017)。セパレータとして "/"を付けてこの情報を出力する方法はありますか?(また、私はあなたのコメントをアップvしましたが、新しいアカウントは表示されません)。 – Zemwot

関連する問題