2012-05-29 112 views
0

我想在Excel中爲字體大小做一些條件格式化,但由於無法從格式菜單中完成,因此需要使用VBA完成。基於下一個單元格值的Excel VBA條件格式化

我有一個範圍B6到無論多行,我想看看它旁邊的單元格,看看它是否是空白的(列C)。如果是,則將單元格設置爲粗體和11pt。如果不是空白,那麼它需要是正常的和9點。

我的代碼在一分鐘只使最後一行粗體和11pt和列的其餘部分,即使列C爲空將是正常的9pt。

什麼問題?順便說一句我正在使用Excel 2003

Dim c As Range, rng 
Dim LASTROW As Long 

LASTROW = Cells(Rows.Count, 1).End(xlUp).Row 

Set rng = Range("B6:B" & LASTROW) 
For Each c In rng 
    If Len(c.Offset(1, 0)) = 0 Then 
     c.Font.Bold = True 
     c.Font.Size = 11 
    Else 
     c.Font.Bold = False 
     c.Font.Size = 9 
    End If 
Next c 
+1

*您可以*做到這一點使用條件格式,使用公式 – smirkingman

+1

使用Excel 2003,以便更改字體大小的選項變灰 – AdRock

+1

它在XL 2​​007/10中也不可用。您必須使用VBA來更改字體大小。 –

回答

3

您的偏移參數是向後。您正在檢查當前單元格下方的單元格。

+0

改變它,它的工作。非常感謝 – AdRock

+0

+ 1 :)不錯的一個:) –

0

這不需要宏 - 您可以使用條件格式中的公式來完成此操作。

說你想強調在B列紅色相鄰的單元格時,C列的單元有「紅」的值:

=IF(C6="Red",TRUE,FALSE) 

然後只需填寫下來填充柄如常。

規則編輯器(2007):

enter image description here

+0

您不能使用條件格式在任何版本的Excel中更改字體大小。 –

+0

-1使用If語句。條件格式中的「條件」意味着你只是使用類似''= C6 =「紅色」的東西。 –

+0

@DougGlancy足夠公平的,我只是認爲它讀取更清楚。 – Widor

2

Here's how

注意的訣竅是使用一個單一的規則,編碼的左上角單元

+1

您不能使用條件格式更改字體大小在任何版本的Excel中。 –

+0

該死的,你是對的!+1 – smirkingman

相關問題