回答編集履歴

2

指定の内容と一致させました

2021/03/15 16:33

投稿

xail2222
xail2222

スコア1508

test CHANGED
@@ -12,9 +12,23 @@
12
12
 
13
13
  Dim tR As Long
14
14
 
15
- For tR = tSheet.UsedRange.Row To tSheet.UsedRange.Row + tSheet.UsedRange.Rows.Count - 1
15
+ Dim tFlg As Boolean
16
16
 
17
+ tFlg1 = False
18
+
19
+ For tR = tSheet.UsedRange.Row + tSheet.UsedRange.Rows.Count - 1 To tSheet.UsedRange.Row Step -1
20
+
21
+ If Not tFlg1 Then
22
+
17
- If tSheet.Cells(tR, 1).Value <> "" Then
23
+ If tSheet.Cells(tR, 1).Value <> "" Then
24
+
25
+ tFlg1 = True
26
+
27
+ End If
28
+
29
+ End If
30
+
31
+ If tFlg1 Then
18
32
 
19
33
  tSheet.Cells(tR, 3).Formula = Replace("=IF(A{@}<>"""",IF(B{@}<>"""",B{@}*25,0),"""")", "{@}", tR)
20
34
 
@@ -28,7 +42,9 @@
28
42
 
29
43
  ```
30
44
 
31
- …ちょっと違いますけど、大体こんな感じ?
45
+ ~~…ちょっと違いますけど、大体こんな感じ?~~
46
+
47
+ ※違うのが気持ち悪かったので指定の内容と一致させました。
32
48
 
33
49
 
34
50
 

1

ちょとしゅうせい

2021/03/15 16:33

投稿

xail2222
xail2222

スコア1508

test CHANGED
@@ -14,9 +14,13 @@
14
14
 
15
15
  For tR = tSheet.UsedRange.Row To tSheet.UsedRange.Row + tSheet.UsedRange.Rows.Count - 1
16
16
 
17
- tSheet.Cells(tR, 3).Formula = Replace("=IF(A{@}<>"""",IF(B{@}<>"""",B{@}*25,0),"""")", "{@}", tR)
17
+ If tSheet.Cells(tR, 1).Value <> "" Then
18
18
 
19
+ tSheet.Cells(tR, 3).Formula = Replace("=IF(A{@}<>"""",IF(B{@}<>"""",B{@}*25,0),"""")", "{@}", tR)
20
+
19
- tSheet.Cells(tR, 4).Value = tSheet.Cells(tR, 3).Value
21
+ tSheet.Cells(tR, 4).Value = tSheet.Cells(tR, 3).Value
22
+
23
+ End If
20
24
 
21
25
  Next
22
26
 
@@ -24,6 +28,10 @@
24
28
 
25
29
  ```
26
30
 
31
+ …ちょっと違いますけど、大体こんな感じ?
32
+
33
+
34
+
27
35
  手作業でやるよりは良いですが
28
36
 
29
37
  もっと良い方法がありそうな気はしますね。