回答編集履歴

1

コード修正&コード追加

2019/08/19 02:54

投稿

hatena19
hatena19

スコア33715

test CHANGED
@@ -10,11 +10,11 @@
10
10
 
11
11
  With .Range("K10", .Cells(Rows.Count, "J").End(xlUp).Offset(, 1))
12
12
 
13
- .NumberFormatLocal = "#,##0_ ;[赤]-#,##0"
13
+ .Offset(, 1).NumberFormatLocal = "#,##0_ ;[赤]-#,##0" '次の列に書式設定
14
14
 
15
15
  .Formula = "=ROUNDDOWN(J10*(100*VLOOKUP(Sheet2!$I$7,'Sheet3'!$A$2:$B$" & Rows.Count & ",2,FALSE))/100,0)"
16
16
 
17
- .Offset(, 1).Value = .Value 'の列(L列)に値をコピー
17
+ .Offset(, 1).Value = .Value 'の列(L列)に値をコピー
18
18
 
19
19
  .ClearContents '数式削除
20
20
 
@@ -26,6 +26,32 @@
26
26
 
27
27
  End Sub
28
28
 
29
+ ```
30
+
31
+ 計算列の数式を削除してしまうのなら、計算列はなくてもいいですね。計算列は削除して、K列を支払金額にして、K列を値で上書きすればOKです。
29
32
 
30
33
 
34
+
35
+ ```vba
36
+
37
+ Sub test()
38
+
39
+ With Worksheets("Sheet1")
40
+
41
+ With .Range("K10", .Cells(Rows.Count, "J").End(xlUp).Offset(, 1))
42
+
43
+ .NumberFormatLocal = "#,##0_ ;[赤]-#,##0" '書式設定
44
+
45
+ .Formula = "=ROUNDDOWN(J10*(100*VLOOKUP(Sheet2!$I$7,'Sheet3'!$A$2:$B$" & Rows.Count & ",2,FALSE))/100,0)"
46
+
47
+ .Value = .Value '値で上書き
48
+
49
+ End With
50
+
51
+ End With
52
+
53
+ MsgBox "処理が終了しました"
54
+
55
+ End Sub
56
+
31
57
  ```