我正在转换一些使用 Excel 的 vb.net 代码来使用 MS 提供的 Excel 互操作(版本 14)。我已经成功地隐藏了很多代码,但我还有最后一个问题,我无法设置 Excel 表单标签标题文本。我使用的是 Shapes 而不是 Pictures,我尝试对 Shapes.AddLabel 做同样的事情,但我做不到。
这是我使用 COM 对象的旧代码
With ExcelObject
.ActiveSheet.OLEObjects.Add(ClassType:="Forms.Label.1", Link:=False,
DisplayAsIcon:=False, Left:=iTempLeft, Top:=iTempTop,
Width:=iTempWidth, Height:=iTempHeight).Select()
iLabels = iLabels + 1
sLabelName = "Label" & CStr(iLabels)
.ActiveSheet.OLEObjects(sLabelName).object.Caption = gudtDrawingAndDefectXYsForPrint(iDrawing).sDrawingName
.ActiveSheet.OLEObjects(sLabelName).Placement = Microsoft.Office.Interop.Excel.XlPlacement.xlMoveAndSize
End With
现在这是我尝试使用互操作的更新代码
With ExcelObject
CType(.ActiveSheet, Excel.Worksheet).Shapes.AddLabel(Microsoft.Office.Core.MsoTextOrientation.msoTextOrientationHorizontal, iTempLeft, iTempTop, iTempWidth, iTempHeight).Name = sLabelName
CType(.ActiveSheet, Excel.Worksheet).Shapes.Item(sLabelName).Placement = Excel.XlPlacement.xlMoveAndSize
CType(.ActiveSheet, Excel.Worksheet).Shapes.Item(sLabelName).Title = gudtDrawingAndDefectXYsForPrint(iDrawing).sDrawingName
End Width
标题不会像使用 COM 对象的“标题”那样在屏幕上显示任何内容。