를 사용하여/새로 관계형 드롭다운 목록

0

질문

를 설정 드롭다운 것입니다에 따라 선택하는 이전에서 드롭다운 메뉴를 사용하여 Word VBA-코드입니다. 저는 한 무리의 동영상을 통해 읽기 포럼이지만,나는 할 수 없습니다. 내가 사용하는 단어는 기존의 드롭 다운하고 라벨을 부착해야 합니다.올바르게,그 다음과 같은 코드를 작성했습니다 VBA:

    Dim xDirection As FormField
    Dim xState As FormField
    On Error Resume Next
    Set xDirection = ActiveDocument.FormFields("ddType")
    Set xState = ActiveDocument.FormFields("ddSelection")
    If ((xDirection Is Nothing) Or (xState Is Nothing)) Then Exit Sub
    With xState.DropDown.ListEntries
    .Clear
        Select Case xDirection.Result
            Case "Numbers"
                .Add "1"
                .Add "2"
                .Add "3"
                .Add "4"
                .Add "5"
                .Add "6"
            Case "Letters"
                .Add "A"
                .Add "B"
                .Add "C"
            Case "None"
                .Add "Not applicable"
    End Select
    End With
End Sub

문제는 이 솔루션은 때때로 일하지 일정하게 유지되었습니다. 그것은 같은 느낌이 가능한 선택이 업데이트되지 않 충분히 빠른 나는 편지를 선택하는 경우에도 숫자만 사용할 수 있어야(때로는 나를 선택할 수 있도).

나는 이에 Office365 합니다.

피드백 높게 평가될 것입니다

사전에 감사합니다!

ms-word office365 vba
2021-11-23 08:57:31
1

최고의 응답

0

가정:word 문서가 있으로 두 개의 드롭다운 콘텐츠를 제어합니다. 모두 태그의 이름을 설정:ccType 및 ccSelection.

enter image description here

클래스 모듈에서의 ThisDocument 당신은 다음 코드:

Option Explicit

Private Sub Document_ContentControlOnExit(ByVal ContentControl As ContentControl, Cancel As Boolean)
If ContentControl.Tag = "ccType" Then
    fillccSelection ContentControl.Range.Text
End If
End Sub

Private Sub fillccSelection(valueType As String)

Dim cc As ContentControl
Set cc = ThisDocument.SelectContentControlsByTag("ccSelection")(1)

If cc.Title <> valueType Then
    With cc
        .Title = valueType  'set title to current type so that we now if coming here next time
        .Range.Text = vbNullString  'clear content as it has to change with new values
        With .DropdownListEntries
            .Clear
            Select Case valueType
                Case "Numbers"
                    cc.SetPlaceholderText Text:="Please select a number"
                    .Add "1"
                    .Add "2"
                    .Add "3"

                Case "Letters"
                    cc.SetPlaceholderText Text:="Please select a letter"
                    .Add "A"
                    .Add "B"
                    .Add "C"
            End Select
        End With
    End With
End If
End Sub

때마다 당신의 값을 변경 첫 콘텐츠 제어(ccType)및 종료 그것 ContentControlOnExit 가 발생합니다.

는 경우 당신은"왼쪽"ccType(지 ccSelection)fillccSelection 이라고 전달하여 가치에서 선택 ccType.

이 형식은 아직 설정하지 않은 대한 ccSelection,드롭다운 항목에 따라 설정 유형을 선택한.

2021-11-25 14:06:12

안녕하세요 Ike,당신의 도움을 주셔서 감사합니다. 불행하게도 나는 그것을 만들 수 있다. 나는 설정의 두 가지 콘텐츠를 제어하는 드롭다운 그리고 태그 그들에게 당신이 말했다. 내가 코드를 넣으로 모듈 그리고 그것은 여전히 작동하지 않습니다. 나는 뭔가? 내가 묶어 두 드롭다운이 함께 어떤 형태로도록 그들이 소통하는가? 최,J
Jakob R.

당신은 코드를 붙여서 ThisDocument 모듈(1 단계)? 을 클릭하면서 Document_ContentControlOnExit 서브(2 단계)를 확인해야 하는 표 3 4 에서 이 스크린샷: i.imgur.com/Ug9zPPX.png
Ike

감사합니다. 는 해결 첫 번째 문제입니다. 지금은 실행시 오류 6124 는 것에서 시작하는 코드 라인입니다.범위에 있습니다.Text=vbNullString
Jakob R.

나는 단지하는 독일어-하지만 확인하십시오 ccSelection 는 경우 강조 표시된 확인란을 선택: i.imgur.com/Fx77qbn.png
Ike

그것은 선택이지만,오류가 여전히 나에게 말하는 내가 편집할 수 없기 때문에 그것은 보호됩니다. 나이 직접 체험할 수 있습니다 일반적인 설정
Jakob R.

When I take out".범위에 있습니다.Text=vbNullString"완벽하게 작동합니다,그것은 단지 업데이트하지 않습니다 라벨링 텍스트입니다. 그러나 나는 괜찮습니다. 대단히 감사합니다!
Jakob R.

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................