2017-01-24 1 views
0

컨텍스트 : My Excel 워크 시트는 여러 시트로 출력되는 사용자 정의 폼으로 구성됩니다. 이 사용자 정의 폼의 함수는 단일 셀로 출력하기를 원하는 날짜 선택기입니다. 그러나 디자인의 본질 때문에 (이 특정 사이트의 신사에게서 얻음, Doug Glancy) 세 개의 콤보 박스로 구성됩니다.Excel : 여러 ComboBox 출력을 단일 셀로 수렴 할 수 있습니까?

그것은으로 표시됩니다

[콤보 상자 : 일] [ComboBox2 : 월] [ComboBox3 : 년]

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는 나의 어려움을 극복하기 위해 겉으로보기에는이 특별한 문제에 아무 소용이 없다. 나는 위의 질문에서 만들어 졌던 용어 나 다른 정보의 부적절한 사용이나 오용에 대해 사전에 사과해야한다. d이 질문을하기 전에이 사이트의 커뮤니티 및 규칙을 잘 알고 응답을 광범위하게 검색했습니다.

도움을 주시면 감사하겠습니다. 고마워.)

답변

0

, 다음 사용하지만

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에 시트에 출력됩니다. 이것이 일어나는 이유에 대한 아이디어가 있습니까?다음은 userform에 적합한 코드입니다 :'mydate = DateSerial (cboDay.Value, cboMonth.Value, cboYear.Value) 셀 (emptyRow, 6) .Value = mydate' – Zemwot

+0

두 번째 옵션을 사용한다고 가정하면, 올바른 순서로 'DateSerial' 매개 변수를 제공합니다. 즉, ** Year **, ** Month ** ** ** Day **? – CLR

+0

아, 필자는 DateSerial 함수 (필수)가 필요한 형식을 가지고 있으며 시트에 전송 된 순서를 나타내는 것으로 가정했다고 생각하지 않았습니다. 이제는 완전히 원하는대로 작동합니다. 나는 귀하의 기능 대답을 반영하도록 메인 포스트를 업데이트 할 것입니다. (추신 : 대단히 감사합니다!) – Zemwot

0

이것은? 당신이 셀이 3 개 상자 내에서 바로 텍스트를 포함 할 경우

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

겉으로보기에 올바른 것으로 보입니다. 고마워요! 그러나 한 가지 문제가 남아 있습니다 : 날짜 전체, 긴 정수로 출력됩니다. 예 : 31012017, 날짜 형식으로 #######로 표시됩니다. 구분 기호로 "/"를 사용하여이 정보를 출력하는 방법이 있습니까? (또한 사용자 의견을 새겨 두었으므로 새 계정으로 표시되지 않습니다.) 다시 한번 감사드립니다. – Zemwot

관련 문제