0

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

它突出显示以下行:

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

对我来说神秘的是,我知道这条线以前可以正常工作,没有任何问题。我唯一能想到的就是我在保护工作表方面搞砸了,但即使现在它没有受到保护,我仍然会收到错误消息。我也尝试了以下解决方案,但遇到了同样的错误:

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

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

4

2 回答 2

1

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

一种显然是取消组合文本框,访问有问题的文本框并修改它,然后重新组合它们。然而,这将被证明是难以追踪的,因为组数会随着您每次重新组合而增加。如果您有多个分组,这可能会造成潜在问题。

另一种方式,令人惊讶的是,它是以“肮脏”的方式来做的,这基本上是宏记录器给我们的简而言之。这样做的方法是选择形状本身并直接更改文本,手动模拟直接单击和键入动作。我已经对其进行了测试并且它可以工作,即使有问题的文本框被多次分组。

Sub Macro3()

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

End Sub
于 2013-10-21T02:11:40.880 回答
0

很抱歉回答我自己的问题。无意间想通了。

问题是我的文本框(txtFilePath)与我的工作表上的另一个文本框组合在一起。当我将它们取消分组时,一切正常。谁能向我解释为什么分组会有所作为?

于 2013-10-20T17:31:59.540 回答