Word 2010을 사용하여 전자 양식을 만들었지 만 FormField
컬렉션의 Add
메서드에 버그가있는 것 같습니다. 나는 주변에 방법이 있는지 알고 싶다.FormField.Add 메서드가 새 필드에 대한 참조를 반환하지 않습니다. (버그?)
양식에 직원이 있는지 묻는 테이블이있어서 단추를 눌러 추가 행을 추가 할 수 있습니다. 이 코드는 테이블에 새 행을 추가 한 다음 양식 필드를 만드는 새 행의 각 셀로 이동합니다.
Private Sub AddStaffRow(t As Table)
Dim rowNum As Integer
Dim ff As FormField
' Add a new row
t.Rows.Add
rowNum = t.Rows.Count
' Insert form fields in to the cells
' Staff role dropdown
Set ff = ActiveDocument.FormFields.Add(t.Cell(rowNum, 1).Range, wdFieldFormDropDown)
ff.Name = "staff_role" & rowNum
With ff.DropDown.ListEntries
.Add "Principle Investigator"
.Add "Sub Investigator"
.Add "Research Nurse"
.Add "Practice Nurse"
.Add "Administrator"
End With
' Staff name textbox
Set ff = ActiveDocument.FormFields.Add(t.Cell(rowNum, 2).Range, wdFieldFormTextInput)
ff.Name = "staff_name" & rowNum
' GCP certificate available
Set ff = ActiveDocument.FormFields.Add(t.Cell(rowNum, 3).Range, wdFieldFormDropDown)
ff.Name = "staff_gcp" & rowNum
With ff.DropDown.ListEntries
.Add "Yes"
.Add "No"
.Add "NA"
End With
End Sub
추가 된 주먹 필드가 올바르게 작동하고, 드롭 다운이 만들어지고 옵션이 추가 된 이름이 지정됩니다. 다음 필드가 FormField
컬렉션 카운트 증분을 첨가하는 경우에는, 필드가 문서에 나타나지만 함수로부터 반환 기준이 제 필드이다 (스탭 역할 드롭)
documentation states 리턴 값 (있어야)되는 FormField
객체에 대한 참조가 컬렉션에 추가 :
코드 후이 제 드롭 필드 마지막 필드 name
을 가지고 완료했기 때문에 반환 참조가 잘못 첨가 화장실 이
같은 KS 내가 뭔가 잘못하고 있는가 또는이이 "버그"주위에 방법이 있나요?
솔루션이 작동합니다. 그러나 셀 끝 마커를 선택하지 않아야하는 이유를 설명 할 수 있습니까? 나는 여전히 이것이 버그라고 생각하지만 어딘가에 문서화되어 있다면 잘못된 것으로 입증되기를 바란다. – Tony
> '설명 할 수 있습니까?'아니요. 단, 마커의 마지막 마커와 같은 방법으로 셀 끝 마커를 바꿀 수는 없습니다. 따라서 셀 끝 마커가 포함 된 범위의 내용을 수정하려고하면 문제가 발생할 수 있습니다. 곤충? 워드 레인지 객체를 불필요하게 다루기 힘든 디자인의 매우 열등한 조각이라고 설명 할 것입니다. 아마 Word에서 다시 생각하기보다는 Excel의 Range에서 변형 된 것입니다. FWIW, 나는 사고와 같은 소리를 내고, 때로는 인간의 실수로 회피 할 수없는 결과를 낳을 수 있다는 원칙에 대해 "버그"라고 묘사하는 경우는 드뭅니다 .- –
사후 고려 사항으로, 나는 적어도 "버그"라고 생각합니다. 객체 모델은 그 시나리오에서 이상적으로 예외를 발생시킵니다. –