2011-10-27 45 views
0

我有一個包含大量表格的Word 2007文檔。每張桌子都有一些用2種自定義顏色填充的單元。我創建了一個宏,它需要輸入3個值來提供RGB函數,創建其中一種顏色,將其與每種顏色進行匹配,然後用新顏色更改匹配。ActiveDocument.Tables(k).Range.Cells(j).Shading.BackgroundPatternColor returns -1

我使用了一個If語句,該語句將填充單元格的顏色與RGB函數返回的顏色進行比較,並將函數與用戶給出的輸入進行比較。

If ActiveDocument.Tables(k).Range.Cells(j).Shading.BackgroundPatternColor = RGB(inputRed, inputGreen, inputBlue) Then 
     'code 
end if 

當我正在尋找在文檔中看到的結果,我注意到,從3代表了幾個細胞不與舊的顏色,所以顯然是宏觀無法識別它。

在Word 2007中,我選擇了應該更改其顏色的單元格。我去了首頁 - >底紋 - >更多顏色 - >自定義,並看到3個值與用戶輸入的3個值完全匹配。

經過30分鐘的盯着顯示器,我想到醫生檢查我的眼睛。 :)

雖然這樣做,我開始調試應用程序。在沒有改變的每個單元格上。在檢查此行後:
ActiveDocument.Tables(k).Range.Cells(j).Shading.BackgroundPatternColor
我看到它返回-1

我在想-1是相當於null或nil,這意味着要麼沒有填充單元格,但如果是這樣,爲什麼我可以看到RGB值?或者系統可能無法讀取RGB值,但究竟是誰?

你有一個鏈接,其中Shading.BackgroundPatternColor方法很好解釋?

回答

1

我不知道-1的值,但Word 2007中的顏色略有變化,因此這些值不再是RGB值。我已經寫了很多關於這方面的內容 - 請參閱http://www.wordarticles.com/Articles/Colours/2007.php

+0

Thx很多Tony 我會閱讀你的文章,它很長:),並儘快回覆評論。 –

相關問題