2

値に基づいて値に基づいてExcelからいくつかのセルを印刷したい。ほとんどの場合は機能していますが、最後にエラーが発生します。これが私がこれまでに持っているものです...

これは解決されました。作業スクリプトは以下のとおりです

from win32com.client import Dispatch
import time, pythoncom

xl = Dispatch('Excel.Application')
wb = xl.Workbooks.Add(r'X:\HR & IT\IT\LOGS\Dynamics Idle Sessions\Copy of Dynamics Idle Sessions.xlsm')
ws = wb.Worksheets(1)
xl.Run('Refresh')
time.sleep(0.5)

idlerow = 6

while idlerow < 32:
    idletime = ws.Cells(idlerow,3).value
    user = ws.Cells(idlerow,4).value
    if idletime is not None:
        if idletime > 60 and len(user) > 6:
            print(user,'\thas been logged on to Dynamics for\t',idletime,'\tminutes.')
        elif idletime > 60 and len(user) <= 6:
            print(user,'\t\thas been logged on to Dynamics for\t',idletime,'\tminutes.')
    idlerow += 1

xl.Quit()
pythoncom.CoUninitialize()

私が得ているエラー:

"Traceback (most recent call last):
  File "X:/HR & IT/Ryan/Python Scripts/DynamicsUsersMT60.py", line 15, in <module>
    if idletime > 60 and len(user) > 6:
TypeError: unorderable types: NoneType() > int()"

アイドル時間を int として設定すると、次のエラーが発生します。

Traceback (most recent call last):
  File "X:/HR & IT/Ryan/Python Scripts/DynamicsUsersMT60.py", line 13, in <module>
    idletime = int(ws.Cells(idlerow,3).value)
TypeError: int() argument must be a string or a number, not 'NoneType'

これらのエラーは、スクリプトが正しく実行され、必要なものが出力された後にのみ表示されます。少し助けてください?

どうもありがとう。

4

1 に答える 1

2

idletimeの値がのように見えますNone。追加のチェックを追加します。

if idletime is not None:
    if idletime > 60 and len(user) > 6:
        print(user,'\thas been logged on to Dynamics for\t',idletime,'\tminutes.')
    elif idletime > 60 and len(user) <= 6:
        print(user,'\t\thas been logged on to Dynamics for\t',idletime,'\tminutes.')
于 2013-09-24T09:45:54.477 に答える