尝试填充上方填充单元格的彩色线条

问题描述

No Colored Rows

With Colored Rows

我的代码是将颜色填充到填充行上方的行中。 文本上方有 2 行,它的底行 2 需要填充颜色? 它们应该链接函数上方的 Sub 中显示的范围 我真的无法理解它前几天似乎可以工作,但现在它停止工作了? 我认为 sub 是对的,只是功能似乎失败了?? 不确定如何将两者联系在一起?

   Private Sub Fill_Color_Click()
   Dim Com As ComboBox
   Dim ws As Worksheet

   Set Com = Me.Fill_Color

   With ws
   
    Select Case Com.Value
        Case ("Fill Color 1 Page Job Card")
            Color .Range("A13:Q61")

        Case ("Fill Color 2 Page Job Card")
            Color .Range("A13:Q61")
            Color .Range("A66:Q120")
   
        Case ("Fill Color 3 Page Job Card")
             Color .Range("A13:Q61")
            Color .Range("A66:Q122")
            Color .Range("A127:Q178")
            
        Case ("Fill Color 4 Page Job Card")
            Color .Range("A13:Q61")
            Color .Range("A66:Q122")
            Color .Range("A127:Q183")
            Color .Range("A188:Q244")

        Case ("Fill Color 5 Page Job Card")
            Color .Range("A13:Q61")
            Color .Range("A66:Q122")
            Color .Range("A127:Q183")
            Color .Range("A188:Q244")
            Color .Range("A249:Q299")
    End Select
    
End With


End Sub

Function Color(rng As Range)

Dim row As Range
Dim sheet As Worksheet
Set ws = ThisWorkbook.Sheets("Job Card Master")
Dim EmptyRowNum As Integer

For i = 1 To rng.Rows.Count

    Set row = rng.Rows(i)
    If WorksheetFunction.CountA(row) = 0 Then
        EmptyRowNum = EmptyRowNum + 1
    End If
    If EmptyRowNum = 2 Then
        EmptyRowNum = 0
        row.Interior.ColorIndex = 4
    End If

Next i

End Function
       

解决方法

您有命名错误,sheet vs ws: Dim sheet as WorksheetColor() 函数中,但您随后设置了 ws = ...

反正放错地方了,需要移到Fill_Color_Click()

Private Sub Fill_Color_Click()

    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Job Card Master")

以便对范围的引用有意义。