Excel Python win32com-按名称调用文本框?

Excel Python win32com-按名称调用文本框?,excel,textbox,pywin32,Excel,Textbox,Pywin32,我尝试使用pywin32在MS Excel中获取文本框的名称是徒劳的,我尝试录制了一个宏,得到了以下提示,但我无法将它们从VBA转换为python。在下面的示例中,我选择文本框并将其重命名,我只想通过名称引用它们,我想这会让我更接近 ActiveSheet.Shapes.Range(Array("TextBox 2")).Select Selection.ShapeRange.Name = "TextBox 3" 这就是到目前为止我在python中使用的方法 import win32com.c

我尝试使用pywin32在MS Excel中获取文本框的名称是徒劳的,我尝试录制了一个宏,得到了以下提示,但我无法将它们从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

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

我在尝试时出错,对象没有属性“name”。这是因为它是name而不是name。再次感谢您的帮助,这太简单了。我有一个类似的问题-我需要从excel的文本框中读取数据,但我没有运行windows,因此我认为我不能使用Win32 COM库。有人知道另一种在*NIX中有效的解决方案吗?
for shp in canvas:
    print shp.name