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

回答編集履歴

2

2021/10/10 03:51

投稿

退会済みユーザー
answer CHANGED
@@ -1,7 +1,40 @@
1
1
  `for b in range(4,Sheet_Max2,1):`の4がどこから来たか分かりませんが…
2
2
 
3
- 4が初期値であれば、forの一番外側で、`int_var = 4`として置いて、for文で4から増やしたいたびに`int_var+=1`とすれば、4の部分が都度増えていきます。
3
+ 4が初期値であれば、forの一番外側で、`int_var = 3`として置いて、for文で4から増やしたいたびに`int_var+=1`とすれば、4の部分が都度増えていきます。
4
-
5
4
  `for b in range(int_var,Sheet_Max2,1):`
5
+ という形で試してください。
6
6
 
7
+ 3で初期化して、forの度に1足したらforの初期値は4になりますね。
8
+
9
+
10
+
11
+
12
+ ```Python3
13
+
14
+ int_var = 3 # <---- 追加
15
+
16
+
7
- という形で試してださい。
17
+ #コピー先ファイル一つずつ開
18
+ for key, value in so_dict2.items():
19
+ for v in value:
20
+ wb = openpyxl.load_workbook(f'C:\テスト用\個別表2\{key}\{v}.xlsx')
21
+ ws = wb[sheet_name]#コピー先シート取得
22
+ Sheet_Max2 = ws1.max_row#シートの最終行を取得する コピー元シート
23
+ #コピー元ファイルの列行を取得する
24
+
25
+
26
+ int_var+=1 # <---- 追加
27
+ # for b in range(4,Sheet_Max2,1):
28
+ for b in range(int_var ,Sheet_Max2,1): # <---- 修正
29
+ if ws1.cell(row=b, column=3).value is None:
30
+ break
31
+ Sheet_Max1 = ws.max_row#シート最終行を取得 コピー先シート
32
+ for a in range(Sheet_Max1, 0, -1):
33
+ if ws.cell(row=a, column=2).value is not None:
34
+ ws.cell(row=a+1,column=2).value = ('料金')
35
+ kensin = ws1.cell(row=b,column=3).value#セルコピー
36
+ ws.cell(row=a+1,column=3,value=kensin)#セル貼付け
37
+ break
38
+ wb.save(f'C:\テスト用\個別表2\{key}\{v}.xlsx')#上書き保存
39
+
40
+ ```

1

2021/10/10 03:51

投稿

退会済みユーザー
answer CHANGED
@@ -1,6 +1,4 @@
1
- for b in range(4,Sheet_Max2,1):`
1
+ `for b in range(4,Sheet_Max2,1):`の4がどこから来たか分かりませんが…
2
- ```
3
- の4がどこから来たか分かりませんが…
4
2
 
5
3
  4が初期値であれば、forの一番外側で、`int_var = 4`として置いて、for文で4から増やしたいたびに`int_var+=1`とすれば、4の部分が都度増えていきます。
6
4