質問編集履歴

1

コードの挿入やり直し

2021/10/25 10:31

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,10 +1,18 @@
1
- 下記内容で、Range("全体")はテーブルを指しています。テーブルの中が空白ならMsgboxにてメッセージ表記それ以外なら、Elseよ下の処理をしてほしいのですが、("全体")テーブルに値を入力しても「値入力されていません」とメッセージが出てしまいます。
1
+ 下記内容で、Range("A8")はテーブルの中のセルを指しています。A8セルの中が空白なら処理何もせず終わいのですが、下記内容だとIf後処理実行され「Selection.Group Start:=True, End:=True, Periods:=Array(False, False, False, _
2
2
 
3
- 述方法間違っているでしか?
3
+ False, True, False, True)」このピボットテーブル表を変更する部分でエラー出ます。値が入っていないと編集できない部分なので、ここでエラーが出ことは問題はなく、セルが空白の場合、処理をないよにすれば特に問題ないのですが、その条件分岐ができません。
4
4
 
5
5
 
6
6
 
7
+ この記述内容でなぜ条件分岐できないのでしょうか?
8
+
9
+ If Range("A8").Select <> "" Then ここで、A8セルが空白でない場合、処理を実行しますとしているつもりです。
10
+
11
+
12
+
7
- 記述内容もわせて教えていたけると幸です
13
+ 記述内容もわせて教えてい。
14
+
15
+
8
16
 
9
17
 
10
18
 
@@ -14,12 +22,134 @@
14
22
 
15
23
  ```VBA
16
24
 
17
- If Range("全体").Select <> "" Then
25
+ Sub 更新()
18
26
 
19
- MsgBox "値が入力されていません"
27
+ '不適合抽出
20
28
 
21
-
29
+ Application.ScreenUpdating = False
22
30
 
31
+
32
+
33
+ Dim namelist As ListObject
34
+
35
+ Dim i As Long
36
+
37
+ Dim names As String
38
+
39
+
40
+
41
+ Sheets("原紙").Select
42
+
43
+ Set namelist = ActiveSheet.ListObjects("氏名")
44
+
45
+ Sheets("記入").Select
46
+
47
+
48
+
49
+
50
+
51
+ If Range("A8").Select <> "" Then
52
+
53
+
54
+
55
+ For i = 1 To namelist.ListRows.Count
56
+
57
+ names = namelist.ListRows(i).Range(1).Value
58
+
59
+ Sheets("記入").Select
60
+
61
+ ActiveSheet.ListObjects("全体").Range.AutoFilter Field:=3, Criteria1:=names
62
+
63
+ Range("全体[[#Headers],[NO]]").Select
64
+
65
+ Range(Selection, Selection.End(xlToRight)).Select
66
+
67
+ Range(Selection, Selection.End(xlDown)).Select
68
+
69
+ Selection.Copy
70
+
71
+ Sheets(names).Select
72
+
73
+ Range("A20").Select
74
+
75
+ ActiveSheet.Paste
76
+
77
+ Columns("A:I").EntireColumn.AutoFit
78
+
79
+ Sheets("記入").Select
80
+
81
+ ActiveSheet.ListObjects("全体").Range.AutoFilter Field:=3
82
+
83
+ Range("A1").Select
84
+
85
+ Next i
86
+
87
+
88
+
89
+
90
+
91
+ 'グラフ更新
92
+
93
+ Dim mySheet As Object
94
+
95
+ For Each mySheet In ThisWorkbook.Sheets
96
+
97
+ If mySheet.Name = "原紙" Then
98
+
99
+ GoTo continue
100
+
101
+ ElseIf mySheet.Name = "記入" Then
102
+
103
+ GoTo continue
104
+
23
- Else
105
+ End If
106
+
107
+
108
+
109
+ Sheets(mySheet.Name).Select
110
+
111
+ ActiveSheet.ChartObjects("グラフ 1").Activate
112
+
113
+ ActiveChart.PivotLayout.PivotTable.PivotCache.Refresh
114
+
115
+ continue:
116
+
117
+ Next
118
+
119
+
120
+
121
+ Sheets("全体").Select
122
+
123
+
124
+
125
+ 'グラフ表記更新
126
+
127
+ Sheets("全体").Select
128
+
129
+ Range("A32").Select
130
+
131
+ **Selection.Group Start:=True, End:=True, Periods:=Array(False, False, False, _
132
+
133
+ False, True, False, True)**
134
+
135
+
136
+
137
+
138
+
139
+ Sheets("記入").Select
140
+
141
+ Range("A1").Select
142
+
143
+ ThisWorkbook.Save
144
+
145
+ Application.ScreenUpdating = True
146
+
147
+
148
+
149
+ End If
150
+
151
+ End Sub
152
+
153
+
24
154
 
25
155
  ```