回答編集履歴

3

コード修正

2023/01/12 05:07

投稿

pig_vba
pig_vba

スコア807

test CHANGED
@@ -21,6 +21,7 @@
21
21
  Range("F" & i).Value = 1
22
22
 
23
23
   end if
24
+ next i
24
25
  ```
25
26
  ①:数値表記なので数値を代入してください。(足りない桁は自動的に0で埋めてくれます)
26
27
  ②:And不要です(今回のバグの主原因です)

2

軽微な修正

2023/01/12 05:06

投稿

pig_vba
pig_vba

スコア807

test CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
   end if
24
24
  ```
25
- ①:数値表記なすから数値を代入してください。
25
+ ①:数値表記なで数値を代入してください。(足りない桁は自動的に0で埋めてくれます)
26
26
  ②:And不要です(今回のバグの主原因です)
27
27
 
28
28
  以上2点の修正で動作確認済みです。(excel2019)

1

回答の変更

2023/01/12 05:04

投稿

pig_vba
pig_vba

スコア807

test CHANGED
@@ -1,11 +1,28 @@
1
- > '売先コードの入力
2
- > If Range("E" & i).Value = "○○株式会社" Then
3
- > Range("E" & i).Value = "06427" And _
4
- > Range("F" & i).Value = "00"
5
- もしかしてなんですけど
1
+ ※回答変更済み
6
- If **worksheets(客先情報が入ってる別シート)**.Range("E" & i).Value = "○○株式会社" Then...
7
2
 
3
+ ```VBA
8
- だったりしませんか?
4
+ '表示の形式
9
- **省略形(Range~)は全てアクティブシートを参照します。** 別シートの情報を取ってきたいなら明示しなければなりません。
5
+ Columns("E:E").NumberFormatLocal = "00000"
10
- もし原因がこれでしたら面倒くさがらずに予め使うシートはすべて変数宣言しておくことを推奨します。
6
+ Columns("F:F").NumberFormatLocal = "00"
11
7
 
8
+ '変数の宣言
9
+ Dim maxrow As Long
10
+ maxrow = Worksheets(1).Cells(Rows.Count, 5).End(xlUp).Row
11
+ Dim i
12
+ For i = 2 To maxrow
13
+
14
+ '売先コードの入力
15
+ If Range("E" & i).Value = "○○株式会社" Then
16
+ Range("E" & i).Value = 6427
17
+ Range("F" & i).Value = 0
18
+
19
+  ElseIf Range("E" & i).Value = "株式会社▲▲" Then
20
+ Range("E" & i).Value = 6424
21
+ Range("F" & i).Value = 1
22
+
23
+  end if
24
+ ```
25
+ ①:数値表記なんですから数値を代入してください。
26
+ ②:And不要です(今回のバグの主原因です)
27
+
28
+ 以上2点の修正で動作確認済みです。(excel2019)