【问题标题】:Excel VBA Changing text inside shapes based off a range of cellsExcel VBA 根据一系列单元格更改形状内的文本
【发布时间】:2015-10-18 08:11:34
【问题描述】:

我制作了一个大型图表,其中包含以文本形式存储的数字,需要将“旧”数字更改为“新”数字范围。在 20 张纸上,每张都有圆形、矩形、左箭头和右箭头。旧的数字范围存储在“A”列中的单独电子表格中,需要更改为“B”列中列出的数字(如 A1 到 B1)。

什么是 VBA 方法可以根据新的数字范围将 Shapes 中的旧文本更改为新的正确文本?是否可以编写一个脚本来更改整个 WorkBook 中的值?

我的错误想法是: 1. 在图表中搜索以找到各种形状。 2. 获取每个形状内的文本。 3. 将文本与电子表格与旧数字进行比较。 4. 插入新号码。 5. 移动到下一个形状。

【问题讨论】:

  • 现在无济于事,但继续前进...您知道可以将形状中的文本链接到单元格吗?设置完成后,您需要做的就是更新单元格以更改所有形状的文本!
  • 我不知道。我对 VBA 比较陌生,并且仍在学习该程序的方法。我会调查的,谢谢!
  • 当然可以,但它与 VBA 无关。要链接文本,请使用公式栏,就像形状是一个单元格一样,然后在公式栏中输入一个简单的公式,例如:=A1 然后单元格 A1 中的任何值都将显示在形状中作为文本。
  • 但与 Excel 用户界面中的大多数内容一样,此链接也可以在 VBA 中完成。

标签: vba excel


【解决方案1】:

A1 中输入一个值,并说我们已经有了一个 Shape:

运行这个:

Sub LinkCellToShape()
   Dim sh As Shape
   Set sh = ActiveSheet.Shapes(1)
   sh.DrawingObject.Formula = "=A1"
End Sub

将形状中的文本链接到单元格中的值。你也可以使用:

sh.OLEFormat.Object.formula = "=A1"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-18
    • 1970-01-01
    • 2013-10-19
    • 1970-01-01
    • 1970-01-01
    • 2020-11-28
    • 2020-12-09
    • 1970-01-01
    相关资源
    最近更新 更多