В Excel вы можете вставить объект фигур TextBox
и связать его со значением ячейки, выбрав фигуру, затем выбрав строку формул и щелкнув ячейку, значение которой вы хотите отобразить в текстовом поле.
Когда я записываю макрос, который делает это, я получаю следующее.
Sub RecordedMacro()
'
' RecordedMacro Macro
'
'
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.Shapes.AddTextbox(msoTextOrientationHorizontal, 0, 12.3, 101.55, _
40.5).Select
Application.CutCopyMode = False
Selection.Formula = "=Sheet1!R7C5"
Range("D16").Select
End Sub
Если я просто повторно запустил этот макрос вручную, макрос прервется на шаге Selection.Formula
с ошибкой Run-time error '1004': Unable to set the Formula property of the TextBox class
Как я могу выполнить sh эту задачу (присвоить значение ячейки TextBox) программно, что Excel позволяет вам делать из пользовательского интерфейса?
Для справки, это это то, что показывает XML, когда вы вручную связываете TextBox и сохраняете файл. Было бы чудовищно сложно построить этот xml вручную.
<cdr:sp macro="" textlink="Sheet1!$D$7">
<cdr:nvSpPr>
<cdr:cNvPr id="7" name="TextBox 6">
<a:extLst xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">
<a:ext uri="{FF2B5EF4-FFF2-40B4-BE49-F238E27FC236}">
<a16:creationId xmlns:a16="http://schemas.microsoft.com/office/drawing/2014/main" id="{A138082B-AC53-4E42-86F7-A28CF4BF4089}" />
</a:ext>
</a:extLst>
</cdr:cNvPr>
<cdr:cNvSpPr txBox="1" />
</cdr:nvSpPr>
<cdr:spPr>
<a:xfrm xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">
<a:off x="622935" y="1184910" />
<a:ext cx="2667000" cy="1200150" />
</a:xfrm>
<a:prstGeom xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" prst="rect">
<a:avLst />
</a:prstGeom>
</cdr:spPr>
<cdr:txBody>
<a:bodyPr xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" vertOverflow="clip" wrap="square" rtlCol="0" />
<a:lstStyle xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" />
<a:p xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">
<a:fld id="{3CDA77B5-21A6-4C86-91DA-7A407717D285}" type="TxLink">
<a:rPr lang="en-US" sz="1100" b="0" i="0" u="none" strike="noStrike">
<a:solidFill>
<a:srgbClr val="000000" />
</a:solidFill>
<a:latin typeface="Droid Sans" />
<a:ea typeface="Droid Sans" />
<a:cs typeface="Droid Sans" />
</a:rPr>
<a:t>This is much longer text</a:t>
</a:fld>
<a:endParaRPr lang="en-US" sz="1100" />
</a:p>
</cdr:txBody>
</cdr:sp>