我如何按顺序搜索数字?

时间:2016-07-22 06:32:35

标签: excel vba excel-vba fill

我的问题如下:

  • 我有3列20行,其中包含数字。
  • 有一行数字在1到20之间,顺序为crescente,其他单元格包含更大的数字,然后是100或其他。

我的家庭作业是我必须编写一个VBA代码,用于填充包含该行的单元格。通过这种方式,我将拥有一条色彩缤纷的蛇"来自包含数字1到20之间的单元格。

  • 当然,起始号码是" A1"
  • 结束单元格可以是区域中的任何位置" A1:C20"
  • 该物质是有色细胞必须按照数字顺序出现!

enter image description here

2 个答案:

答案 0 :(得分:0)

    Sub MeykEhYewowSnakhey()
        Dim r, c
        Dim ws As Worksheet
        Set ws = ThisWorkbook.Worksheets(1)
        For r = 1 To ws.UsedRange.Rows.Count
            For c = 1 To ws.UsedRange.Columns.Count
                If ws.Cells(r, c).Value < 100 Then
                    ws.Cells(r, c).Interior.ColorIndex = 6
                End If
            Next
        Next
    End Sub

试试。

答案 1 :(得分:0)

可能有一种更有效的方法来解决这个问题,但这是我的解决方案。

Sub Snake()
    Dim wbk As Workbook
    Dim ws As Worksheet
    Dim mySnake As Integer, x As Integer, y As Integer

    Set wbk = Workbooks("Book1.xlsm")
    Set ws = wbk.Worksheets("Sheet1")
    x = 1
    y = 1
    With ws
        For mySnake = 1 To 20
            If .Cells(x, y) = mySnake Then
                .Cells(x, y).Interior.Color = vbYellow
                'Check cell below
                If .Cells(x + 1, y) = mySnake + 1 Then
                    x = x + 1
                'Check cell to right
                ElseIf .Cells(x, y + 1) = mySnake + 1 Then
                    y = y + 1
                'Check cells to left if y <> 1
                ElseIf y <> 1 Then
                    If .Cells(x, y - 1) = mySnake + 1 Then
                        y = y - 1
                    End If
                'Check cells above if x <> 1
                ElseIf x <> 1 Then
                    If .Cells(x - 1, y) = mySnake + 1 Then
                        x = x - 1
                    End If
                End If
            End If
        Next mySnake
    End With
End Sub