【发布时间】:2016-02-09 08:09:42
【问题描述】:
我正在处理行大小为 A:ZZ 的 Excel 工作表,并且应该只有 7 个具有值的单元格。我正在尝试制作一种“过滤器”,它将检查非空单元格的数量,如果有超过 7 个非空单元格将在 MsgBox 中打印一条消息(并且直到此时有效)。但是在 MsgBox 中,我也想只从行中获取那些值(例如用逗号分隔) - 尽管由于 Intersect 语法的一些问题而无法正常工作。这是代码
Sub blanks()
Dim a, b As Integer
a = 0
Range("A1").Select
Do
With ActiveSheet.Range(Rows(b))
b = ActiveCell.Row
a = Application.WorksheetFunction.CountA(ActiveSheet.Rows(b))
If a > 7 Then
MsgBox ("ERROR" & "/n" & Application.Intersect(.SpecialCells(xlCellTypeVisible)))
Exit Do
Else
ActiveCell.Offset(1, 0).Select
End If
End With
Loop Until ActiveCell = "stop"
End Sub
怎么了?
【问题讨论】:
-
虽然它不应该工作(
With ActiveSheet.Range(Rows(b))cusb是0)我仍然建议使用.SpecialCells(xlCellTypeVisible).Address。这应该显示非空范围(不是值)...如果您需要这些值,则需要一个For Each ...循环...(根本不需要Application.Intersect)