質問編集履歴
1
コード書式を適用しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -5,7 +5,8 @@
|
|
5
5
|
下記の様なコードを書いております。
|
6
6
|
|
7
7
|
<test.py>
|
8
|
+
|
8
|
-
|
9
|
+
```ここに言語を入力
|
9
10
|
1 import win32com.client
|
10
11
|
2 from win32com.client import Dispatch
|
11
12
|
3 import os
|
@@ -27,13 +28,13 @@
|
|
27
28
|
|
28
29
|
14 max_Rows=ws.Rows.Count
|
29
30
|
15 for i in range (2,max_Rows):
|
30
|
-
16
|
31
|
+
16 xl.Cells(i,2).Value=xl.WorksheetFunction.CountIf(xl.Range(ws.Cells(2,1),ws3.Cells(i,1)),ws.Cells(i,1).Value)
|
31
32
|
|
32
33
|
17 ws.Columns(1).Insert
|
33
34
|
|
34
35
|
18 wb.SaveAs(pathx)
|
35
36
|
19 wb.Close(SaveChanges=True)
|
36
|
-
|
37
|
+
```
|
37
38
|
|
38
39
|
|
39
40
|
Q1)
|
@@ -42,20 +43,22 @@
|
|
42
43
|
このエラーの意味は何になるのでしょうか? また、解決方法を教えて頂きたく。
|
43
44
|
|
44
45
|
========================
|
46
|
+
```ここに言語を入力
|
45
47
|
C:\Users\test_users\Desktop>python test8z3.py
|
46
48
|
Traceback (most recent call last):
|
47
49
|
File "test8z3.py", line 35, in <module>
|
48
50
|
xl.Cells(i,2).Value=xl.WorksheetFunction.CountIf(xl.Range(ws3.Cells(2,1),ws3.Cells(i,1)),ws3.Cells(i,1).Value)
|
49
51
|
File "<COMObject <unknown>>", line 2, in CountIf
|
50
52
|
pywintypes.com_error: (-2147352567, '例外が発生しました。', (0, 'Microsoft Excel', '引数の数の誤りがあります。', 'xlmain11.chm', 0, -2146827284), None)
|
53
|
+
```
|
51
54
|
============================
|
52
55
|
|
53
56
|
不思議なのは、14行目をコメントアウトして、15行目のmax_Rowsを数値(例えば、300)に置き換えると(つまり、下記の様にすると)、
|
54
|
-
|
57
|
+
```ここに言語を入力
|
55
58
|
14 # max_Rows=ws.Rows.Count
|
56
59
|
15 for i in range (2,300):
|
57
60
|
16 xl.Cells(i,2).Value=xl.WorksheetFunction.CountIf(xl.Range(ws.Cells(2,1),ws3.Cells(i,1)),ws.Cells(i,1).Value)
|
58
|
-
|
61
|
+
```
|
59
62
|
|
60
63
|
ちゃんとCountifが正常に動き、別名でファイル保存もできます。(上記例では、300行まで動きます。エラーも発生しません。)
|
61
64
|
|