Python: передача переменной в Range()

Привет и спасибо заранее.

Использование Python 3.4 в Visual Studio 2015 для чтения / записи из Excel 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 '' или 'Can't преобразовать объект' int 'в str неявно'

Конечно, после того, как они вместе, адрес должен выглядеть как A2:$A$70006

Даже если у вас есть ссылка на список возможных обходных путей или просто "это невозможно". Все будет хорошо. Еще раз спасибо

пс. Для самого форума, если я должен был представить это по-другому или должен был структурировать это по-другому, пожалуйста, дайте мне знать, чтобы я мог это исправить. еще раз спасибо

1 ответ

Решение

Попробуй это

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

Подробнее о форматировании строки в Python 3 можно прочитать здесь.

Другие вопросы по тегам