下記内容で、Range("A8")はテーブルの中のセルを指しています。A8セルの中が空白なら処理を何もせず、終わりたいのですが、下記内容だとIf後の処理が実行され「Selection.Group Start:=True, End:=True, Periods:=Array(False, False, False, _
False, True, False, True)」このピボットテーブル表記を変更する部分でエラーが出ます。値が入っていないと編集できない部分なので、ここでエラーが出ることは問題ではなく、セルが空白の場合、処理をしないようにすれば特に問題ないのですが、その条件分岐ができません。
この記述内容でなぜ条件分岐できないのでしょうか?
If Range("A8").Select <> "" Then ここで、A8セルが空白でない場合、処理を実行しますとしているつもりです。
記述内容もあわせて教えてください。
以上ご確認お願いいたします。
VBA
1Sub 更新() 2'不適合抽出 3Application.ScreenUpdating = False 4 5Dim namelist As ListObject 6Dim i As Long 7Dim names As String 8 9Sheets("原紙").Select 10Set namelist = ActiveSheet.ListObjects("氏名") 11Sheets("記入").Select 12 13 14If Range("A8").Select <> "" Then 15 16 For i = 1 To namelist.ListRows.Count 17 names = namelist.ListRows(i).Range(1).Value 18 Sheets("記入").Select 19 ActiveSheet.ListObjects("全体").Range.AutoFilter Field:=3, Criteria1:=names 20 Range("全体[[#Headers],[NO]]").Select 21 Range(Selection, Selection.End(xlToRight)).Select 22 Range(Selection, Selection.End(xlDown)).Select 23 Selection.Copy 24 Sheets(names).Select 25 Range("A20").Select 26 ActiveSheet.Paste 27 Columns("A:I").EntireColumn.AutoFit 28 Sheets("記入").Select 29 ActiveSheet.ListObjects("全体").Range.AutoFilter Field:=3 30 Range("A1").Select 31 Next i 32 33 34'グラフ更新 35Dim mySheet As Object 36 For Each mySheet In ThisWorkbook.Sheets 37 If mySheet.Name = "原紙" Then 38 GoTo continue 39 ElseIf mySheet.Name = "記入" Then 40 GoTo continue 41 End If 42 43 Sheets(mySheet.Name).Select 44 ActiveSheet.ChartObjects("グラフ 1").Activate 45 ActiveChart.PivotLayout.PivotTable.PivotCache.Refresh 46continue: 47 Next 48 49Sheets("全体").Select 50 51'グラフ表記更新 52 Sheets("全体").Select 53 Range("A32").Select 54 **Selection.Group Start:=True, End:=True, Periods:=Array(False, False, False, _ 55 False, True, False, True)** 56 57 58Sheets("記入").Select 59Range("A1").Select 60ThisWorkbook.Save 61Application.ScreenUpdating = True 62 63End If 64End Sub 65
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/10/25 10:33