第一次遇見無法賦值的奇怪情況,該情況只發生在特定屬性,在此求助,并供大家研討。
————————————————————————分割線————————————————————————
我們先看一組常規情況:
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組賦值不能生效的情況,無法理解,供各位研討。
求解釋!求解釋!求解釋!