2017-01-25 5 views
0

ボタンを使用してデータを含む最後の行を非表示/非表示にするコードを探しています。ボタンを使用してテーブルのデータを含む最後の行を非表示にする - VBA Excel

私は一番上の行に質問があり、下の行に1〜10個の応答があると予想されるテーブルを作成しました。 テーブル内の10行すべてを非表示にし、回答者にボタンを使用して一度に1行ずつ表示するように求めます。

私は以下のコードを試しましたが、すべての行を再表示しますが、各クリックごとに1つの行を並べ替える必要があります。

Dim startRow As Long: startRow = 1 
Dim lastRow As Long: lastRow = ActiveSheet.UsedRange.Rows.Count 

ActiveSheet.Rows(startRow & ":" & lastRow).Hidden = False 

私は、事前に感謝の意を表するコミュニティからの良い反応を得ることを望むでしょう。

答えて

0

startRowからlastRowまでの範囲を使用することはできません。それは常にすべての行を開始行から最後の行まで表示します。

ボタンをクリックするたびに1つの行を表示する場合は、ボタン上でこのマクロを試してください。既に非表示の行は無視され、最初から非表示の行が表示されます。

Sub test() 
Dim startRow As Long: startRow = 1 
Dim lastRow As Long: lastRow = ActiveSheet.UsedRange.Rows.Count 

Do While startRow < lastRow + 1 
    If ActiveSheet.Rows(startRow & ":" & startRow).Hidden = True Then 
     ActiveSheet.Rows(startRow & ":" & startRow).Hidden = False 
     startRow = lastRow + 1 
    End If 
    startRow = startRow + 1 
Loop 


End Sub 

VBA以外のアプローチでは、行を表示したままにして、テキストを非表示にするために書式設定を使用することがあります。条件付き書式設定ルールでチェックされたセルにトリガ値を入力すると、その値が表示されるように書式設定されます。そうすれば、回答を再表示する順序を選択することができます。

enter image description here

+0

ハイテイリン!すばらしい。このコードは、私が望むように完全に私のために働いています。私は2つのアクションを実行するフォームボタンでこのコードを使用しています:1)データ入力のための新しいフォームを開く。 2)送信時にデータを記録するように新しい行を再表示します。実際に私は複数のテーブルを持っていて、このアプローチを使用して、コードに新しい行を追加することで宛先セルリンケージの問題を回避したいと考えていました。しかし、大きな助けをしてくれてありがとう! – ExcelMr

+0

喜んで助けてください。 [ツアー]で説明されているように答えを記入してください。他の人が簡単に見つけられるようにしてください。 – teylyn

+0

はい。しかし、評判が15未満の人はマークできますが、公開されていないことが示されています。私はこの答えをもう一度見て、そのスコアに達するとそれをマークします。これはこのフォーラムでの私の最初のポストでした。再度、感謝します! – ExcelMr

関連する問題