teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

コード修正&コード追加

2019/08/19 02:54

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -4,13 +4,26 @@
4
4
  Sub test()
5
5
  With Worksheets("Sheet1")
6
6
  With .Range("K10", .Cells(Rows.Count, "J").End(xlUp).Offset(, 1))
7
- .NumberFormatLocal = "#,##0_ ;[赤]-#,##0"
7
+ .Offset(, 1).NumberFormatLocal = "#,##0_ ;[赤]-#,##0" '次の列に書式設定
8
8
  .Formula = "=ROUNDDOWN(J10*(100*VLOOKUP(Sheet2!$I$7,'Sheet3'!$A$2:$B$" & Rows.Count & ",2,FALSE))/100,0)"
9
- .Offset(, 1).Value = .Value 'の列(L列)に値をコピー
9
+ .Offset(, 1).Value = .Value 'の列(L列)に値をコピー
10
10
  .ClearContents '数式削除
11
11
  End With
12
12
  End With
13
13
  MsgBox "処理が終了しました"
14
14
  End Sub
15
+ ```
16
+ 計算列の数式を削除してしまうのなら、計算列はなくてもいいですね。計算列は削除して、K列を支払金額にして、K列を値で上書きすればOKです。
15
17
 
18
+ ```vba
19
+ Sub test()
20
+ With Worksheets("Sheet1")
21
+ With .Range("K10", .Cells(Rows.Count, "J").End(xlUp).Offset(, 1))
22
+ .NumberFormatLocal = "#,##0_ ;[赤]-#,##0" '書式設定
23
+ .Formula = "=ROUNDDOWN(J10*(100*VLOOKUP(Sheet2!$I$7,'Sheet3'!$A$2:$B$" & Rows.Count & ",2,FALSE))/100,0)"
24
+ .Value = .Value '値で上書き
25
+ End With
26
+ End With
27
+ MsgBox "処理が終了しました"
28
+ End Sub
16
29
  ```