Python:将变量传递给Range()

时间:2016-03-20 19:54:40

标签: python-3.x excel-2007 xlwings

嗨,谢谢你。

在Visual Studio 2015中使用Python 3.4,从Ex​​cel 2007读取/写入

希望传递一个变量:

mylastrow ='$A$70006' # this address is not hard coded. it will be from an 'input'

将上述范围加入下面的表达式是我失败的原因:

myrange = xlwings.Range('Sheet1', 'A2:' & lastrow).value

我试过这些:

myrange = xlwings.Range('Sheet1', 'A2:' & lastrow)
myrange = xlwings.Range('Sheet1', 'A2:' + lastrow).value
myrange = xlwings.Range('Sheet1', 'A2:' + lastrow)
myrange = xlwings.Range('Sheet1', 'A2:' & str(lastrow)).value
myrange = xlwings.Range('Sheet1', 'A2:' & int(lastrow)).value
myrange = xlwings.Range('Sheet1', 'A2:' + str(lastrow)).value
myrange = xlwings.Range('Sheet1', 'A2:' + int(lastrow)).value
myrange = xlwings.Range('Sheet1', 'A2', 'A' & lastrow).value
myrange = xlwings.Range('Sheet1', 'A2', 'A' & lastrow).value

我一直得到:'不支持的操作数类型&:' str'和' int'' 或者'无法转换' int'反对str的对象'

当然,他们在一起后,地址应该像A2:$ A $ 70006

即使您只是指向可能的解决方法列表的链接,或者只是"这也无法完成"。一切都会好的。再次感谢你。

PS。对于论坛本身,如果我应该以另一种方式呈现这个或者应该以另一种方式构建,请告诉我,以便我可以解决它。再次感谢你。

1 个答案:

答案 0 :(得分:1)

试试这个

mylastrow ='$A$70006'
...
myrange = xlwings.Range('Sheet1', 'A2:{0}'.format(mylastrow)).value

有关python 3 string formatting的更多信息,请参阅此处。