2016-10-06 63 views
0

Excelで現在のアクティブなセルの値を読み取り、そのセルの値をセルに書き込む単純な関数をPythonで(xlwingsを使って)アクティブセルから次の列に移動します。Pythonとxlwingsを使用してExcelでアクティブ/選択されたセルの範囲を調べる

絶対参照を使用してセルを指定すると、range(3、2)のように指定すると、すべてがOKです。しかし、関数を実行すると、選択されたセルの行と列の値を見つけることはできません。

リファレンスが指定されているが、アクティブなセル範囲がユーザーの選択によって異なる場合が多い例が多数見つかりました。

私はいくつかのアイデアを試しました。最初のオプションは、v0.10.0 xlwingsのドキュメントで見つけたApp.selectionを使用しようとしていますが、これは使用可能な範囲参照を返さないようです - 検索するときに「無効なパラメータ」というエラーが表示されます「はCellRange」から行:「プロパティオブジェクトが属性 『行』を持っていない」

def refTest(): 

import xlwings as xw 

wb = xw.Book.caller() 

cellRange = xw.App.selection 

rowNum = wb.sheets[0].range(cellRange).row 
colNum = wb.sheets[0].range(cellRange).column 

url = wb.sheets[0].range(rowNum, colNum).value 

wb.sheets[0].range(rowNum, colNum + 1).value = url 

二アイデアは、セル選択から直接の行と列を読み取ろうとしたが、これは私にエラーを与える:

def refTest(): 

import xlwings as xw 

wb = xw.Book.caller() 

rowNum = xw.App.selection.row 
colNum = xw.App.selection.column 

url = wb.sheets[0].range(rowNum, colNum).value 

wb.sheets[0].range(rowNum, colNum + 1).value = url 

アクティブ/選択したセルの範囲をExcelからPythonにxlwingsで渡すことはできますか?誰かがこれにいくつかの光を当てることができるなら、私は本当にそれを感謝します。

ありがとうございます!

答えて

1

ブックからアプリケーションオブジェクトを取得する必要があります。新しいアプリをインスタンス化する場合は、xw.Appのみを直接使用します。また、selection Rangeオブジェクトを返すので、これを実行します。

cellRange = wb.app.selection 
rowNum = cellRange.row 
colNum = cellRange.column 
+0

こんにちはフェリックス - 遅い返事申し訳ありません - 昨日の仕事は少し怒っていました!正しい方法を教えてくれてありがとうございます。私は自分の機能を更新しました。今は鮮明なセル参照を取得しています。もう一度ありがとう、リチャード。 – QBG

関連する問題