如何查找最后一行是否使用Python Win32com在Excel中查找特定列的值
我有一个Excel文件,我使用python Win32com来操作它。
如何检查最后一行是否在特定列中有值?
当我尝试的时候,是28,而不是23(最后一行的值不是空的)
used = sht1.UsedRange nrows = used.Row + used.Rows.Count - 1
当你想获得任何特定列的最后一行时,UsedRange总是不可靠。 您应该使用EndXlUp或EndXlDown函数。
检查下面这行:
LastRow = Sheets("Sheet1").Range("A" & Sheets("Sheet1").Rows.Count).End(xlUp).Row
其中,A是获得最后一行的列。
此外,请检查此URL: 在VBA中查找上次使用的单元格时出错
由于您使用的是python win32 com,因此Endxlup无法正常工作。 有一件基本的事情可以做。 检查下面的代码:
ws = wb.Worksheets('Sheet1') rw = 2 While ws.cells(rw, 1) <> "" rw +=1
其中,rw是您想要开始行数的起始行。 (rw,1)中的1表示列。 A栏代表A.
逻辑背后是循环将运行,直到它没有得到列A中的空白单元格,你会得到variablesrw的行数
我用这种愚蠢的方式去做。 不知道有没有问题。 到目前为止为自己工作
def find_lastrow_oncolumn(worksht, colno): used = worksht.UsedRange nrows = used.Row + used.Rows.Count - 1 lastrow_havevalue = 0 for k in range(nrows): if worksht.Cells(nrows-k, colno).Value is not None: print worksht.Cells(nrows-k, colno).Value, nrows-k , k lastrow_havevalue = nrows-k break return lastrow_havevalue
xlUp
是一个预定义的常量。
所以最简单的方法是在VBE的直接窗口中input代码
? xlUp
你会看到下面的结果。
-4162
将该行添加到您的Python代码
xlUp = -4162
完成!