程序:Excel 2016.如何在Excel工作表中定位特定形狀
我有一張有很多形狀的工作表。他們每個人都有自己的特定名稱,其中大部分都是標籤。我想改變自己的caption屬性,但我不能找到一種方法,但稱他們通過一個像這樣的:
LblLabel_1.Caption = ...
LblLabel_2.Caption = ...
LblLabel_3.Caption = ...
相反,我一直在尋找這樣的事情:
For BytCounter01 = 1 to 255
Shapes("LblLabel_" & BytCounter01).Caption = ...
Next
這一個將導致錯誤438,基本上說Caption不適用於此對象。它仍然是目標,因爲此代碼:
Debug.print Shapes("LblLabel_" & BytCounter01).Name
將返回我的名字。
尋找一個解決方案:
-i've試圖控制(「LblLabel_」 & BytCounter01),而不是形狀(「LblLabel_」 & BytCounter01),但因爲控制它不會工作只爲用戶窗體,不用於牀單;
-i've已嘗試過形狀(「LblLabel_」& BytCounter01).TextFrame.Characters.Text,但它會再次返回錯誤438;
- 由於標籤是一個組的一部分,我都試過
Shapes("ShpGroupOfShapes01").GroupItems(ShpShapeIndex).Caption
和
Shapes("ShpGroupOfShapes01").GroupItems(ShpShapeIndex).TextFrame.Characters.Text
但同樣得到了438。
是否真的沒有辦法輕鬆地在工作表上定位特定標籤並更改標題?
謝謝。
編輯:感謝Excelosaurus,問題解決了。由於我的標籤是ActiveX控件我不得不使用這樣的事情:
For BytCounter01 = 1 to 255
Shapes("LblLabel_" & BytCounter01)OLEFormat.Object.Object.Caption = ...
Next
您可以檢查他的反應和更多細節的意見。再次感謝Excelosaurus!
謝謝你的回覆。我已經在我的文件中測試了這個命令,但它給了我運行時錯誤5.我將嘗試在一個全新的文件中複製你的例子,以便我可以正確地檢查它。 –
我已經複製了該文件,但行shtMyShapes.Shapes(sShapeName).TextFrame2.TextRange.Text = sShapeCaption正在返回運行時錯誤«'-2147024809(80070057)':指定的值超出允許值»(我已翻譯了描述,所以可能不準確)。我看不出我做錯了什麼。 –
好吧,你的「標籤」不是常規的形狀;它們是從「開發人員」選項卡插入的表單控件或ActiveX控件。 窗體控件:'shtMyShapes.Shapes(sShapeName).OLEFormat.Object.Caption = sShapeCaption' ActiveX控件:'shtMyShapes.Shapes(sShapeName).OLEFormat.Object.Object.Caption = sShapeCaption' – Excelosaurus