VBA - 无法获取工作表类的TextBoxes属性

时间:2013-10-20 17:24:00

标签: excel vba excel-vba

VBA相当新,我刚开始遇到错误Unable to get TextBoxes Property of Worksheet Class

它突出显示以下一行:

ActiveSheet.TextBoxes("txtFilePath").Text = Application.ActiveWorkbook.Path & "\"

我的神秘之处在于,我知道这条生产线之前没有任何问题。我能想到的唯一一件事就是我在保护工作表时遇到了麻烦,但即使现在它没有受到保护,我仍然会收到错误。我也尝试过以下解决方案,但遇到同样的错误:

ActiveSheet.OLEObjects("txtFilePath").Object.Text = Application.ActiveWorkbook.Path & "\"

任何人都可以向我解释为什么我遇到错误以及为什么我开始如此随机地遇到它?我该如何解决?

2 个答案:

答案 0 :(得分:1)

可悲的是,关于如何访问分组形状的属性没有明确的方法(组基本上是一个形状,至少在2010年)。有两种可能的解决方案。

显然要取消对文本框进行分组,访问相关文本框并对其进行修改,然后重新组合它们。但是,这将证明难以跟踪,因为随着您执行的每个重组,组编号都会增加。如果您有多个分组,这可能会造成潜在问题。

另一方面,令人惊讶的是,它是以“肮脏”的方式进行的,这基本上就是宏录音机给我们的简要介绍。这样做的方法是选择形状本身并直接更改文本,手动模拟直接点击和类型动作。我已经对它进行了测试,即使有问题的文本框被多次分组,它也能正常工作。

Sub Macro3()

    foo = Application.ActiveWorkbook.Path & "\"
    ActiveSheet.Shapes.Range(Array("txtFilePath")).Select
    Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = foo

End Sub

答案 1 :(得分:0)

很抱歉回答我自己的问题。意外地弄清楚了。

问题是我的文本框(txtFilePath)与我工作表上的另一个文本框组合在一起。当我解开他们时,一切都很好。任何人都可以向我解释为什么分组会产生影响吗?