Vba 设置PowerPoint 2013演示文稿中每个表格的格式
对于一个研究不周的问题,我深表歉意,但我对VBA的一般知识,尤其是PowerPoint中的VBA知之甚少,而且我一直坚持可能的基本概念 我试图有条件地格式化演示文稿中的所有表格,并根据我的问题进行调整 我提出了以下基本宏:Vba 设置PowerPoint 2013演示文稿中每个表格的格式,vba,powerpoint,Vba,Powerpoint,对于一个研究不周的问题,我深表歉意,但我对VBA的一般知识,尤其是PowerPoint中的VBA知之甚少,而且我一直坚持可能的基本概念 我试图有条件地格式化演示文稿中的所有表格,并根据我的问题进行调整 我提出了以下基本宏: Sub FormatTheTable(oTbl As Table) Dim x As Long Dim y As Long With oTbl For x = 1 To .Rows.Count For y = 1 To .Column
Sub FormatTheTable(oTbl As Table)
Dim x As Long
Dim y As Long
With oTbl
For x = 1 To .Rows.Count
For y = 1 To .Columns.Count
If .Cell(x, y).Shape.TextFrame.HasText Then
If CDbl(.Cell(x, y).Shape.TextFrame.TextRange.Text) > 0 Then
.Cell(x, y).Shape.Fill.ForeColor.RGB = RGB(255, 0, 0)
End If
End If
Next ' Column
Next ' Row
End With ' otbl
End Sub
Sub DoIT()
Dim sld As Slide
Dim shp As Shape
For Each sld In ActivePresentation.Slides
For Each shp In sld.Shapes
If shp.HasTable Then
FormatTheTable (shp.Table)
End If
Next shp
Next sld
End Sub
我认为我没有正确调用FormatTheTable
函数,但我不知道如何正确调用。非常感谢您的帮助 这一行:
FormatTheTable (shp.Table)
应该是:
FormatTheTable shp.Table
因为您调用的不是返回值的Function类型的过程,而是不返回值的Sub类型的过程。如果它是一个函数,那么就可以了:
myValue = FormatTheTable (shp.Table)
这条线看起来也有点奇怪:
If CDbl(.Cell(x, y).Shape.TextFrame.TextRange.Text) > 0 Then
所以你要检查每个单元格是否有文本,如果有文本,你要把文本转换成一个数字?这将引起一个错误。你想在那一行测试什么?这一行:
FormatTheTable (shp.Table)
应该是:
FormatTheTable shp.Table
因为您调用的不是返回值的Function类型的过程,而是不返回值的Sub类型的过程。如果它是一个函数,那么就可以了:
myValue = FormatTheTable (shp.Table)
这条线看起来也有点奇怪:
If CDbl(.Cell(x, y).Shape.TextFrame.TextRange.Text) > 0 Then
所以你要检查每个单元格是否有文本,如果有文本,你要把文本转换成一个数字?这将引起一个错误。你想在那行测试什么?在这里标记@JamieG的答案:代码正在检查文本的值是否大于0,但如果文本是字母而不是数字,则会出错。将其更改为:如果CDbl(Val(.Cell(x,y).Shape.TextFrame.TextRange.Text))>0,则在这里标记@JamieG的答案:代码正在检查文本值是否大于0,但如果文本是字母而不是数字,则会出错。将其更改为:如果CDbl(Val(.Cell(x,y).Shape.TextFrame.TextRange.Text))大于0,则