0

さて、日田レンガの壁があります。私にとっては大きな壁ですが、皆さんにとっては小さな壁なので、助けを求めています。

私は、さまざまな行に 110 の質問を含むスプレッドシートを使用しています。次の列で、将来の従業員と既存の従業員に Y または N と回答してもらいます。次に、これを使用して、さまざまな弱点や開発分野を強調し、構築できるようにします。彼らはキャリアとトレーニングの道を歩んでいます。次に、2 番目のタブで数式を使用して、TAB 1 の Y と N を使用して赤と緑でグラフを埋めます。通常、従業員が技術的に強く、ソフト スキルを使用する必要があるか、またはその逆かを識別します。 .
TAB 3 であなたの助けが必要です。Tab 3 には、「推奨される読み物」のリストと、Tab 1 で回答する可能性のある N を修正するために受けるトレーニングがあります。Tab 1 は QUESTIONS と呼ばれます TAB 2 は CHART と呼ばれます TAB 3 は と呼ばれますフィードバック

で、TAB3のCELL B9で、私のバカな考え方は… IF QUESTIONS, C9 = "Y" THEN HIDE FEEDBACK B9

4

2 に答える 2

1

では、ロジックまたはVBA文字列を求めていますか?

あなたのロジックは大丈夫です、そしてVBAの場合それは次のようなものかもしれません

Sub HideRows()

For i = 1 to RowCount 'Change RowCount to however many rows there are in Questions & Feedback

If Sheets("Questions").Range("B"& i) = "Y" Then

Sheets("Feedback").Rows(i).Hidden = True

End If

Next i

End Sub

..私があなたを正しく理解しているなら、それは

于 2012-12-16T14:00:14.717 に答える
0

名前付き範囲を使用することもできます。応答の一部が複数の行を表示/非表示にする場合は、それらをハードコードする必要がないことを意味し、名前付き範囲を編集できます。

私のコード例を機能させるには、質問と同じ行の 3 列目に名前付き範囲の「名前」を書き込む必要があります。

Public Enum HiddenState
Hidden = 0
Shown = 1
Toggle = 2
End Enum

Public Sub Toggle(ByVal Name As String, Optional ByVal State As HiddenState = HiddenState.Toggle)
Dim Row As Variant
For Each Row In Names(Name).RefersToRange.Rows
    If State = Toggle Then
        Row.Hidden = Not Row.Hidden
    Else
        If State = Shown Then Row.Hidden = False Else Row.Hidden = True
    End If
Next
End Sub

Public Sub SetFeedback()
Dim Index As Integer
Dim RowCount As Integer

RowCount = 10 ' Change This

For Index = 1 To RowCount
    If Sheets("Questions").Cells(2, Index) = "Y" Then
        Toggle Sheets("Questions").Cells(3, Index), Hidden
    Else
        Toggle Sheets("Questions").Cells(3, Index), Shown
    End If
Next Index

End Sub

このコードを新しいモジュールに追加する必要があります。行を明示的に非表示および再表示する場合は、HiddenState ビットは必要ありません。

于 2012-12-16T14:50:55.010 に答える