2012-06-06 50 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 
相关问题