Python win32com - вызывать TextBox по имени? - PullRequest
0 голосов
/ 23 августа 2011

Я тщетно пытаюсь получить имя TextBox в MS Excel с помощью pywin32, я попытался записать макрос и получил следующие советы, но не могу перевести их из VBA в python.В приведенном ниже примере я выбираю текстовое поле и переименовываю его, все, что я хочу, - это иметь возможность ссылаться на них по имени, и я полагаю, что это приближает меня.

ActiveSheet.Shapes.Range(Array("TextBox 2")).Select
Selection.ShapeRange.Name = "TextBox 3"

Это то, что у меня есть в Python, так чтодалеко до этого конца.

import win32com.client as win32 
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Open("C:\\users\\khillstr\\Testing\\Scripts\\Book1.xlsx")
excel.Visible = True

ws = wb.Worksheets

for w in ws:
    print w.Name
    w.Activate
    canvas = w.Shapes
    for shp in canvas:
        if shp.TextFrame.Characters:
            print shp.TextFrame2.TextRange

1 Ответ

0 голосов
/ 24 августа 2011
for shp in canvas:
    print shp.name

Имя - это свойство чтения / записи для форм текстовых полей.Вы можете получить и установить имя, используя это свойство.Протестировано в Excel 2010.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...