2016-03-20 8 views
0

こんにちは、ありがとうございます。Python:変数をRange()に渡す

が変数を渡すために探しExcel 2007のからの読み取り/書き込みに、Visual Studioの2015年にはPython 3.4を使用して

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型』」 や「暗黙的をstrには 'int型のオブジェクトを変換できません」

を、彼らは後に、私は入れません

一緒にアドレスはA2のようになります。

回避策のリストにリンクしているだけでも、「これはできません」と表示されます。何でもうまくいくでしょう。ありがとうございました。

ps。フォーラム自体のために、私はこれを別の方法で提示するか、あるいは別の方法で構造化すべきであった場合は、私がそれを修正できるように私に教えてください。ありがとうございました。

答えて

1

python 3 string formattingについてこの

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

詳細はこちらから読み取ることができます試してみてください。

+0

こんにちは。これはうまくいった。私はあなたに感謝し、format()が将来どのように機能するかを見てみようと思います。ありがとうございました。 Ps。私は試していました:Range( 'Sheet1'、 'A2:%s'%lastrow)、Range( 'Sheet1'、 'A2:A%d'%lastrow)、ここでは 'lastrow' = 70006です。どうもありがとうございます。 – Jim

+0

Range( 'Sheet1'、 'A2:%s'%str(mylastrow))。valueのように使用すると、その%文字列の書式設定が機能するかもしれませんが、正しい型のパラメータを渡す必要があります、文字列、...)。そのstr.format()は、それを行うためのpythonの3つの方法によく似ています。とにかく、問題はありませんし、私はあなたを助けてうれしいです:) – Ance

+0

@ジムあなたは、アドレスではなくセルのインデックスに対処するxlwngsの能力を使いたいかもしれません。例えば、 'Range((1,1)、(10,10)) ' –

関連する問題