나는 VBA를 사용하는 것에 아직 아주 익숙하다. 그래서 나는 모든 선호하는 용어를 모른다면 사과한다.워크 시트를 채우는 사용자 폼
스프레드 시트를 채우기 위해 userform을 작성하여 사용중인 직원 인 PTO를 추적 할 수있게하려고합니다. 이 스프레드 시트는 X 축 (1 행)이 날짜이고 Y 축 (A 열)이 종업원 이름입니다.
I 만든 정의 폼은 5 개의 기준을 가지고
I가 선택하고 스프레드 시트에 메뉴를 라벨링함으로써 기준 1 완료1) Employee Name (ComboBox1; this is a drop down of multiple rows)
2) Date of PTO (ComboBox2; this is supposed to be a drop down of multiple columns)
3) Duration of PTO (OptionButton1 is 1 Day, OptionButton2 is 0.5 Day)
4) Enter Data (CommandButton1)
5) Cancel (CommandButton2)
.
나머지는 나를 쫓아내는 것입니다.
행 형식으로 표시되는 동안 ComboBox2 드롭 다운에 날짜 (기준 2)가 표시되지 않습니다. 이 항목을 단일 열로 바꾸면 그룹에 레이블을 지정하고 드롭 다운 메뉴를 만들 수있었습니다. 채울 그리드를 구성 할 수 없으므로 문제가됩니다.
My OptionButton1 및 OptionButton2 항목은 입력 값 (1 및 0.5)을 사용합니다. 현재로서는 가치를 부여 할 수 없었습니다. 단순히 이름이었습니다. 이 입력은 그리드 형식을 작동시킬 수없는 주요 문제 (이 단락)에 부수적입니다.
Private Sub CommandButton1_Click()
cmdOK
End Sub
CommandButton2를이 코드를 사용하여 작업 할 나타납니다
삼차 문제로 인해 내 매우 기본적인 코드를 기준으로 4, 5 내 스크립트 내가 그것의 생각하지만, CommandButton1을 실행하기 위해 실패의 조합입니다 :
Private Sub CommandButton2_Click()
cmdCancel
End Sub
내 마지막으로 내 문제를 설명하면서 "내 목표는 가능합니까?" 나는 많은 사람들이 이미 그것에 접근 할 수 있기 때문에 Excel을이 용도로만 사용하려고합니다. 이것이 가능하다면 필자는 오류 지점을 식별하고 수정하는 데 도움을 요청하거나 기능에 대해 더 많이 배울 수있는 코딩 설명서에 대한 링크를 요청할 것입니다 (이것은 더 장기적인 상황으로, 문제를 해결하는데 도움이되지만, 나는 괜찮을 것입니다.)
미리 답변 해 주셔서 감사합니다.
편집 :
나는 ComboBox2 (날짜) 선택으로까지 만들었습니다 세스@
. 아래에 제안 된 루프를 가져 와서 값 (1 행, 365 열)에 액세스 할 수 없습니다.
나는 세스에서 코드를 수정하려고했지만 루프에 대해서는 아무 것도 모른다. 내가 가장 가능성이 적절 섹션을 작성하지 않은 느낌 (나는 .Value <> ""찾고 있어요) :
개인 서브 ComboBox2_Change() 희미한 나는이 코드를 사용하여
i = 1
Do While ThisWorkbook.ActiveSheet("Breakdown").Cells("A1:NC1", i).Value <> ""
Me.ComboBox1.AddItem (ThisWorkbook.ActiveSheet("Breakdown").Cells("A1:NC1", i).Value)
i = i + 1
Loop
End Sub
한 , "런타임 오류 '438': 개체가이 속성 또는 메서드를 지원하지 않습니다."
루프 작성에 대한 일반적인 지침을 찾으려하지만 일부 참조는 찾을 수 없습니다. 위의 진술 중, 그래서 내 문제를 해결하는 방법을 긍정적이지 않다.상자의 속성과 관련이있을 수도 있습니다. 행을 반복하지 않지만 RowSource 아래에 "날짜"(강조 표시 및 레이블 지정으로 정의 된 해당 범위의 내 일반 용어)를 입력 할 수 있습니다.
알렉스 D @ 나는 또한 내가받은 두 번째 게시물의 경로를 시도하고; 사용하려고하면 런타임 오류가 발생합니다.
Private Sub UserForm_Initialize()
For i = 2 To Sheets("Breakdown").UsedRange.Columns.Count
comboDate.AddItem (Cells(1, i))
comboDate.List(comboDate.ListCount - 1, 1) = i
Next
End Sub
데이터가 정의 된 곳에서 움직일 가능성이 있습니까? 일반적으로 시트에 단추가 있고 (일명 셀을 선택하고 userform이 튀어 나오기 때문에) 초기화가 필요하지 않을 수도 있습니다.
시릴 20140127 (1700 UTC)
대단히 감사합니다. 당신은 저에게이 부분에 대해 머리로 시작하는 것 이상을 주셨습니다. 나는 사소한 일에 강한 코더가 아니기 때문에 나를 도와 줄 시간을 내 주셔서 감사합니다. 목적을 자세히 설명하기 위해 계약직 직원이 회사에 직접 시간을 입력 할 때 계약 직원을위한 것입니다. 대부분 휴가가 연장되지 않으므로 1 일을 입력하는 "간단한"기능을 가진이 스프레드 시트는 문제가되지 않을 것입니다. 사람들이 일년에 5 일 이상을 얻지 못했기 때문에 장기 휴가에 관심을 가져 주셔서 감사합니다. – Cyril
글을 삭제하여 글을 올릴 수 없어 단락을 만들 수 없습니다. – Cyril