Python win32com - 按名称调用TextBox?

时间:2011-08-23 19:55:05

标签: excel textbox pywin32

我试图使用pywin32在MS Excel中获取TextBox的名称是徒劳的,我尝试录制一个宏并获得以下提示,但我无法将它们从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 :(得分:0)

for shp in canvas:
    print shp.name

Name是文本框形状的读/写属性。您可以使用该属性获取和设置名称。在Excel 2010中测试。