Я пытаюсь написать простую функцию на Python (с xlwings), которая считывает текущее «активное» значение ячейки в Excel, а затем записывает это значение ячейки в ячейку в следующем столбце вместе с активной ячейкой.
Если я укажу ячейку, используя абсолютную ссылку, например диапазон (3, 2), то у меня все в порядке. Однако мне кажется, что мне не удается найти значения строки и столбца какой-либо ячейки, выбранной после запуска функции.
Я нашел много примеров, где указана ссылка, но не там, где активный диапазон ячеек может варьироваться в зависимости от выбора пользователя.
Я пробовал несколько идей. Первый вариант - это попытка использовать App.selection, который я нашел в документации xlwings v0.10.0, но это, похоже, не возвращает ссылку на диапазон, которую можно использовать - я получаю сообщение об ошибке «Недопустимый параметр» при попытке получить строка из '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? Если кто-то сможет пролить свет на это, я был бы очень признателен.
Спасибо!