0

私は 1 週間にわたって VB の経験がある何人かと一緒に仕事をしてきましたが、これらの If / Then ステートメントをすべて正しく機能させることはできません。「otype」+ SCE+ CNE および「otype」= 専用線またはインターネットのみを参照するステートメントを除いて、すべて機能します。ロジックは正しいように見えますが、期待した結果が得られません。ヘルプ!以下は、質問がある VB コードです。ありがとうございました。

Private Sub Worksheet_Activate()

End Sub

Private Sub Worksheet_Change(ByVal Target As Range)

    Rem CNE Customer
    If Range("otype") = "SCE+ CNE" Then
        Worksheets("VNC Form").Visible = True
        Worksheets("ISC Portal").Visible = True
        Worksheets("ISC Request Only").Visible = False
        Worksheets("VPN Details").Visible = False

    Else
        Worksheets("VNC Form").Visible = False
        Worksheets("ISC Portal").Visible = False
    End If

    Rem ISM ABC Customer
    If Range("otype") = "SC4ABC" Then
        Worksheets("ISM-ABC Customers").Visible = True
        Worksheets("ISM Portal").Visible = True

    Else
        Worksheets("ISM-ABC Customers").Visible = False
    End If


    Rem VPN Details tab
    If Range("ctype") = "VPN" Then
        Worksheets("VPN Details").Visible = True
        Worksheets("ISC Portal").Visible = True
        Worksheets("VNC Form").Visible = False

    Else
        Worksheets("VPN Details").Visible = False
        Worksheets("ISC Portal").Visible = False
        Worksheets("VNC Form").Visible = False
    End If

    Rem Connections tabs
    If Range("ctype") = "Dedicated Line" Or Range("ctype") = "Internet Only" Then
        Worksheets("ISC Portal").Visible = True
        Worksheets("VPN Details").Visible = False

    Else
        Worksheets("ISC Portal").Visible = False
        Worksheets("VPN Details").Visible = False
    End If

    Rem AT&T and Connection tabs
    If Range("otype") = "SCE+ Reseller" And Range("ctype") = "CNE" Or Range("otype") = "SCE+ Internal" And Range("ctype") = "CNE" Then
        Worksheets("ISC Request Only").Visible = True
        Worksheets("VNC Form").Visible = True
        Worksheets("ISC Portal").Visible = False
        Worksheets("VPN Details").Visible = False

    Else
        Worksheets("ISC Request Only").Visible = False
        Worksheets("VNC Form").Visible = False
        Worksheets("ISC Portal").Visible = True
        Worksheets("VPN Details").Visible = True
    End If

End Sub
4

1 に答える 1

0

以下のコードが役立つかもしれませんが、QAT のドロップダウン メニューまたはリボンのボタンを使用して、ユーザーがどのシートを再表示/非表示にするかを決定できるようにすることをお勧めします。ワークシート内のセルが変更されるたびに、そのままのコードが実行されます。

Sid が示唆するように、コードを CASE ステートメントで囲み、Target= otype または ctype...

以下のように、ケースを強制し、スペースを強制的にゼロにしてみてください。

Rem CNE Customer  

If Trim(UCase(replace(Range("otype").TEXT," ",""))) = "SCE+CNE" Then  
    Worksheets("VNC Form").Visible = True
    Worksheets("ISC Portal").Visible = True
    Worksheets("ISC Request Only").Visible = False
    Worksheets("VPN Details").Visible = False

Else
    Worksheets("VNC Form").Visible = False
    Worksheets("ISC Portal").Visible = False
End If

Rem Connections tabs
If (TRIM(UCase(replace(Range("ctype")," ",""))) = "DEDICATEDLINE") Or (TRIM(UCASE(REPLACE(Range("ctype")," ",""))) = "INTERNETONLY") Then
    Worksheets("ISC Portal").Visible = True
    Worksheets("VPN Details").Visible = False

Else
    Worksheets("ISC Portal").Visible = False
    Worksheets("VPN Details").Visible = False
End If

Rem AT&T and Connection tabs
If (TRIM(UCase(replace(Range("otype")," ",""))) = "SCE+RESELLER" And TRIM(UCase(replace(Range("ctype")," ",""))) = "CNE") Or (TRIM(UCase(replace(Range("otype")," ",""))) = "SCE+INTERNAL" And TRIM(UCase(replace(Range("ctype")," ",""))) = "CNE") Then
    Worksheets("ISC Request Only").Visible = True
    Worksheets("VNC Form").Visible = True
    Worksheets("ISC Portal").Visible = False
    Worksheets("VPN Details").Visible = False

Else
    Worksheets("ISC Request Only").Visible = False
    Worksheets("VNC Form").Visible = False
    Worksheets("ISC Portal").Visible = True
    Worksheets("VPN Details").Visible = True
End If
于 2013-04-25T08:45:12.347 に答える