平台:MS Excel 2007(MS Visual Basic 6.0)
我有一些带有不同文本框的excel文件。 所有文本框都是名称。例如TxTbox_AAAA,TxtBox_BBBB 他们中的大多数具有相同数量的具有相同名称的文本框。
我还需要更新文本框内的内容。但就像我说的...一些excel文件不包含文本框。
例如aaa.xls和bbb.xls有TexTbox_AAAA,TextBox_BBBB 和ccc.xls只有TexTbox_AAAA
我的脚本是这样的
xlApp.ActiveSheet.TextBoxes("TextBox_AAAA").Text = TxtAAAA
xlApp.ActiveSheet.TextBoxes("TextBox_BBBB").Text = TxtBBBB
但如果我运行,它将遇到运行时错误'1004': 无法获取Worksheet类的TextBoxes属性
我怀疑它是由于excel没有这个名为“TextBox_BBBB”的文本框
所以如何在xlApp.ActiveSheet.TextBoxes("TextBox_BBBB").Text = TxtBBBB
要检查此工作表/活动表是否不包含TextBoxes(“TextBox_BBBB”),它是否会执行此步骤?
答案 0 :(得分:3)
由于 TextBox 是 Shape ,因此这是一种判断特定TextBox是否在活动表上的方法:
Public Function IsItThere(sIn As String) As Boolean
IsItThere = False
If ActiveSheet.Shapes.Count = 0 Then Exit Function
For Each s In ActiveSheet.Shapes
If s.Name = sIn Then
IsItThere = True
Exit Function
End If
Next s
End Function
答案 1 :(得分:1)
不确定但是试试这个:
Dim ws as Worksheet
Dim shp as Shape
Set ws = Activesheet '~~> change to suit
For Each shp in ws.Shapes
If shp.Name = "Textbox_Name" Then
'~~> your code here
End If
Next
希望这有帮助
答案 2 :(得分:0)
感谢L42和Gary的学生
我明白了..我应该把
For Each s In xlApp.ActiveSheet.Shapes
而不是
For Each s In ActiveSheet.Shapes
仅
感谢您的帮助! =)