2016-03-20 14 views
0

Merhaba ve şimdiden teşekkür ederim.Python: Variable to Range()

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

aşağıda ifadeye yukarıdaki Aralığı Katılma i de başarısız ben ne olduğunu: Visual Studio 2015 yılında Python 3.4 kullanarak

, bir değişken geçmek Looking Excel 2007

gelen okuma/yazma için :

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

Bunları denedim:

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 

Ben almaya devam: olurlarsa sonra, str 've 'int' ' ya da 'örtülü str 'int' nesne' Tabii

dönüştürülemez:' desteklenmeyen işlenen türü (ler) & için' birlikte, adres A2 gibi görünmelidir: $ A $ 70006

Yalnızca olası bir geçici çözüm listesiyle bağlantınız varsa veya "bu yapılamaz" olsa bile. Her şey iyi olacak. Tekrar teşekkürler.

ps. Forumun kendisi için bunu başka bir şekilde sunmalı mıyım yoksa başka bir şekilde yapılandırmalı mıyım? Bunu düzeltmem için lütfen bana bildirin. tekrar teşekkürler.

cevap

1

python 3 string formatting hakkında bu

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

Daha buradan okunabilir deneyin.

+0

Merhaba Ance. Bu çalıştı. Size teşekkür ediyorum ve format() 'ın nasıl çalışacağını öğrenmek için gidiyorum, böylece gelecekte en iyi şekilde yararlanabileceğim. Teşekkür ederim. Ps. Deniyordum: Range ('Sheet1', 'A2:% s'% lastrow) ve Range ('Sheet1', 'A2: A% d'% lastrow), 'lastrow' = 70006, ama hiçbir şey çalışmıyordu. Çok teşekkür ederim. – Jim

+0

% dize biçimlendirmesi, bunu, Range ('Sheet1', 'A2:% s'% str (mylastrow)) değeri gibi kullanırsanız, o zaman işe yarayabilir, ancak daha sonra doğru parametre türünü geçirmeniz gerekir (sayı) , string, ...). Bu str.format(), bunu yapmak için 3 yol daha çok python gibidir. Her neyse, sorun yok ve size yardımcı olmaktan memnuniyet duyuyorum :) – Ance

+0

@Jim xlwngs'in adres yerine hücre indekslerini adresleme yeteneğini kullanmak isteyebilirsiniz, örn .: 'Range ((1,1), (10,10)) ' –

İlgili konular