如何解决最后一行代码到选择案例代码范围
Method Range of Object _Worksheet Failed
不太确定如何处理错误?
这是否意味着它可以t find the range on the worksheet? I
把颜色程序放在下面给你看
除了范围中的最后一行外,代码运行良好
Option Explicit
Private Sub Add_Break_Lines_Click()
Dim Com As ComboBox
Dim ws As Worksheet
Set ws = Application.Workbooks("Automated ardworker.xlsm").Worksheets("Job Card Master")
Set Com = Me.Add_Break_Lines
LastRow = ws.Range("C299").End(xlUp).row
With ws
Select Case Com.Value
Case "Break Lines 1 Page Job Card"
Color .Range("A13:Q & LastRow")
End Select
End With
End Sub
Function Color(rng As Range)
Dim row As Range
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 = 6
End If
Next i
End Function
解决方法
组合框更改
-
始终使用
Option Explicit
。 -
使用与
VBA
中使用的关键字、属性、方法...名称不同的变量名称。 -
您可以考虑使用
If WorksheetFunction.CountBlank(rrg) = rrg.Columns.Count Then
由于 Tom Brunberg 在评论中指出的原因,在函数中,即如果您的公式在范围内计算为“”,则永远不会有
empty
行,只有blank
行。也许在循环之前使用一个变量:cCount = rng.Columns.Count
工作表模块例如Sheet1(在 VBA 中括号中的名称)
Option Explicit
Private Sub Add_Break_Lines_Change()
Dim cmb As ComboBox
Dim ws As Worksheet
Dim LastRow As Long
Set ws = ThisWorkbook.Worksheets("Job Card Master")
Set cmb = Me.Add_Break_Lines
cmb.AddItem "Break Lines 1 Page Job Card"
cmb.AddItem "Dummy"
LastRow = ws.Range("C" & ws.Rows.Count).End(xlUp).row
Select Case cmb.Value
Case "Break Lines 1 Page Job Card"
colorAbove ws.Range("A13:Q" & LastRow)
End Select
End Sub
标准模块模块 1(可选在同一工作表模块中)
Option Explicit
Sub colorAbove(rng As Range)
Dim brg As Range
Dim rrg As Range
Dim EmptyRowNum As Long
Dim i As Long
For i = 1 To rng.Rows.Count
Set rrg = rng.Rows(i)
If WorksheetFunction.CountA(rrg) = 0 Then
EmptyRowNum = EmptyRowNum + 1
End If
If EmptyRowNum = 2 Then
EmptyRowNum = 0
If brg Is Nothing Then
Set brg = rrg
Else
Set brg = Union(brg,rrg)
End If
End If
Next i
If Not brg Is Nothing Then
brg.Interior.ColorIndex = 6
End If
End Sub
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。