VB一个无法赋值的问题
第一次遇见无法赋值的奇怪情况,该情况只发生在特定属性,在此求助,并供大家研讨。
————————————————————————分割线————————————————————————
我们先看一组常规情况:
Sub Test1()
A = 1
MsgBox A
End Sub
提示框弹出的内容是什么?对,1,没错,太简单了
————————————————————————分割线————————————————————————
现在看下一组,我们新建一个PPT,在第1页里,把所有东西都删了,然后插入一个文本框(系统自动认为这个文本框叫Shapes(1)),在里面随便写点什么东西,按ALT+F11。
Sub Test2()
With ActivePresentation.Slides(1).Shapes(1).TextFrame2.TextRange.Font
With .Line
.ForeColor.RGB = RGB(250, 0, 0)
.Weight = 1
MsgBox .ForeColor.RGB
MsgBox .Weight
End With
End With
End Sub
这时提示框弹出的内容是啥?并没有什么异常,和你想的一样,第一次弹出250,第二次弹出1,而且我们看到,文本框里的字被描了个边。
(注:为啥我要用两个with?是想让各位看得清楚些,有利于做对比,后面会用到)
————————————————————————分割线————————————————————————
再来一组,在刚才的PPT里,插入一张表(系统自动认为这个文本框叫Shapes(2)),在第一个单元格cell(1,1)里随便写点什么东西,按ALT+F11。
Sub Test3()
With ActivePresentation.Slides(1).Shapes(2).Table.Cell(1, 1).Shape.TextFrame2.TextRange.Font
With .Fill
.ForeColor.RGB = RGB(0, 0, 0)
MsgBox .ForeColor.RGB
End With
End With
End Sub
还是正常的,提示框弹出0,单元格cell(1,1)里的字变成黑色。
————————————————————————分割线————————————————————————
下面开始第4组:
Sub Test4()
With ActivePresentation.Slides(1).Shapes(2).Table.Cell(1, 1).Shape.TextFrame2.TextRange.Font
With .Line
.ForeColor.RGB = RGB(250, 0, 0)
.Weight = 6
MsgBox .ForeColor.RGB
MsgBox .Weight
End With
End With
End Sub
现在弹出的提示框是啥?分别弹出两次莫明其妙的数,反正不是我们刚才赋值的250和6,这是什么鬼啊?而且,单元格cell(1,1)里的字没有任何变化。
—————————————————————最后的分割线—————————————————————
之所以列这么多组,是想表明代码的格式没有问题,没有错误提示,然而却出现了第4组赋值不能生效的情况,无法理解,供各位研讨。
求解释!求解释!求解释!