2012-06-06 92 views

回答

5

下面是根據莫特的.EntireRow.Interior.ColorIndex

另一個

這不限制你輸入行號,但給用戶在運行時選擇行的靈活性。

Option Explicit 

Sub Sample() 
    Dim Ret As Range 

    On Error Resume Next 
    Set Ret = Application.InputBox("Please select the rows that you would like to color", "Color Rows", Type:=8) 
    On Error GoTo 0 

    If Not Ret Is Nothing Then Ret.EntireRow.Interior.ColorIndex = 6 
End Sub 

隨訪

有沒有寫宏來讀取從列表中的行號和突出行的方法嗎?

是的,有一種方法。比方說,在單元格A1至A10列表中,那麼你可以使用此代碼

Option Explicit 

Sub Sample() 
    Dim i As Long, sh As Worksheet 

    On Error GoTo Whoa 

    Application.ScreenUpdating = False 

    '~~> Set this to the sheet where the rows need to be colored 
    Set sh = Sheets("Sheet2") 

    '~~> Change Sheet1 to the sheet which has the list 
    With Sheets("Sheet1") 
     For i = 1 To 10 
      If Not Len(Trim(.Range("A" & i).Value)) = 0 And _ 
      IsNumeric(.Range("A" & i).Value) Then _ 
      sh.Rows(.Range("A" & i).Value).Interior.ColorIndex = 3 '<~~ Red 
     Next i 
    End With 

LetsContinue: 
    Application.ScreenUpdating = True 
    Exit Sub 
Whoa: 
    MsgBox Err.Description 
    Resume LetsContinue 
End Sub 
+0

嗨,只是一個快速澄清,我應該在之前包括它。電子表格有幾千條記錄(行)。有沒有辦法編寫宏來讀取列表中的行號並突出顯示行?這是我看到的每日報告。我想盡可能地自動化。然後,我可以按顏色過濾,只需看看我需要的。 – Dan

+0

是的,你可以做到這一點。更新帖子。 –

+0

謝謝,我會給它一個。 – Dan

3
objWB.Cells(rowNum,201).EntireRow.Interior.ColorIndex = 6 

+0

+ 1另一個好:) –

4

對於基本的VBA代碼,你可以隨時開始錄製宏,執行動作,停止錄像,看看生成什麼樣的代碼,然後再清理一下做你想要什麼。例如,記錄突出顯示行(設置Interior.Color的值)的動作給你:

Rows("13:13").Select 
Range("C13").Activate 
With Selection.Interior 
    .Pattern = xlSolid 
    .PatternColorIndex = xlAutomatic 
    .Color = 65535 
    .TintAndShade = 0 
    .PatternTintAndShade = 0 
End With 

選擇命令和外來內部特性可以被移除給你:

Rows("13:13").Interior.Color = 65535 

添加該行中多選擇:

Rows("6:6,10:10,150:150,201:201").Interior.Color = 65535 

摘要:

  • 錄製宏
  • 查看Excel的版本
  • 使用/編輯你需要
+0

+ 1的詳細的解答:) –

5

什麼樣的代碼作爲替代微塵的回答,您可以使用條件格式。

例如:選擇A1:J500,條件格式>>新規則>>使用公式...

輸入公式:=OR(ROW()=6, ROW()=10, ROW()=150, ROW()=201)

+1

1用於非VBA溶液:) –

+0

1最簡單的方法。 – brettdj

0

更新:沒有意識到在這個日期,但認爲我想補充這一點,因爲它是有關選擇的答案。

除了Siddharth Rout的回答,因爲我沒有足夠的代表評論,所以您可以動態地找出工作表中有多少行與這兩行。 xlCellTypeConstants可以更改爲您需要的另一個XlCellType常量,並且可以隨時更改該範圍以適應您的電子表格。

Dim numRows As Integer 
numRows = Range("A2", Range("A1048576").End(xlUp)).SpecialCells(xlCellTypeConstants).Cells.Count 
0

對不起,如果它不像其他答案一樣簡潔或優雅,但它可以完成工作。當我爲自己的應用程序編寫代碼時,我需要循環訪問我的代碼。另外,我只需要突出顯示一部分行,而不是突出顯示整行。

Sub Highlight() 
Dim ThisWB As Workbook 
Dim ThisWS As Worksheet 
Dim rows(0 To 3) As Integer 
Dim test As String 

Set ThisWB = ActiveWorkbook 
Set ThisWS = ThisWB.Sheets("Sheet1") 

rows(0) = 6 
rows(1) = 10 
rows(2) = 150 
rows(3) = 201 

For i = 0 To 3 
    test = "A" & rows(i) & ":H" & rows(i) 
    ThisWS.Range(test).Interior.ColorIndex = 15 
Next i 

End Sub 
相關問題