|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
本帖最后由 芝麻陷汤圆 于 2023-6-26 09:53 编辑
小白让AI写了个代码,想要的实现的功能是,假设文本框中5个字,运行后,拆分为5个文本框,文本框中各一个字,且保留文字格式。
前门没有问题,但运行到.TextFrame.TextRange.PasteSpecial ppPasteShape ,总是运行出错,求助大佬
- Sub SplitAndApplyFormatPainter()
- Dim slide As Slide
- Dim shape As Shape
- Dim textBox As Shape
- Dim text As String
- Dim i As Integer
- ' 设置当前幻灯片
- Set slide = ActivePresentation.Slides(1) ' 更改为您想要拆分文本框的幻灯片索引
-
- ' 设置文本框
- Set shape = slide.Shapes("文本框 10") ' 更改为您想要拆分的文本框名称
-
- ' 获取文本框内容
- text = shape.TextFrame.TextRange.Text
-
- ' 拆分文本为单个字,并创建新的文本框
- For i = 1 To Len(text)
-
- ' 创建新文本框
- Set textBox = slide.Shapes.AddTextbox(msoTextOrientationHorizontal, shape.Left + (i - 1) * shape.Width / Len(text), shape.Top, shape.Width / Len(text), shape.Height)
-
- ' 设置文本框内容与格式
- With textBox
- .TextFrame.TextRange.Text = Mid(text, i, 1)
- shape.TextFrame.TextRange.Copy ' 复制原文本框的格式
- .TextFrame.TextRange.PasteSpecial ppPasteShape ' 应用格式刷到新文本框
- ' 可根据需要进一步设置文本框外观、对齐方式等属性
- End With
- Next i
- End Sub
复制代码 |
|