|
まず、シートを開くコードの修正ですが
If Worksheets.Count > 28 Then
x = Day(Date) - 1
Worksheets(x).Activate
End If
End Sub
というようにしておけば、最小枚数になる2月でもOKでしょう。
>実際の表が2行目までタイトルで、3行目が項目名で、実際のデータは4行目
それは問題でないと思います。ただ1・2行目をセル結合していると、どんな動作に
なるか見当がつかないので、クリックする行を「3行目」に固定するとにします。
それから、データの有無をチェックする列は「B列」で良いのですか ?
他の列の方が良いなら、適当にそちらで変更して下さい。いちおう・・
Sub R_Hidden_Change()
If ActiveCell.Row <> 3 Then Exit Sub
'On Error Resume Next
If Hck = False Then
If WorksheetFunction.CountA(Range("B4:B65536")) = 0 Then
MsgBox "B列に値がありません", 48: Exit Sub
End If
Range("B4", Range("B65536").End(xlUp)) _
.SpecialCells(4).EntireRow.Hidden = True
Hck = True
Else
Cells.EntireRow.Hidden = False
Hck = False
End If
End Sub
というように修正して下さい。On Error Resume Next をコメント化しているので
エラーか出たらデバッグするはすです。出たら内容を報告して下さい。
あと、モジュールの先頭に
Private Hck As Boolean
の宣言はしてありますか ?
|
|