我不想用cells循环 65536次来判断,太费时间。用Columns或者用别的来判断都行。越多种类越好。谢谢
第1个回答 2013-07-24
Application.ScreenUpdating = False '关闭屏幕刷新
a = ActiveCell.Row
Cells(1, ActiveCell.Column).Select
Selection.End(xlDown).Select
If Selection.Row = 65536 Then MsgBox "列" & Selection.Column & "为空值"
Cells(a, ActiveCell.Column).Select
Application.ScreenUpdating = True
a = ActiveCell.Row
Cells(1, ActiveCell.Column).Select
Selection.End(xlDown).Select
If Selection.Row = 65536 Then MsgBox "列" & Selection.Column & "为空值"
Cells(a, ActiveCell.Column).Select
Application.ScreenUpdating = True
第2个回答 2013-07-24
if [L1]="" AND [L65536].END(3).ROW=1 THEN MSGBOX "L 列为空"追问
为什么是=1?
追答如果这列没有数据的话 [L65536].END(3).ROW 就是等于1 的。你可以试试:在没有数据的列,选中该列65536行的单元格,再按 END键,然后按向上方向键,这时候选中的就是 该列第一行的单元格,这就是[L65536].END(3).ROW的效果。因为如果只有L1单元格有i数据,也一样选中的 L1单元格,所以需要判断 L1。
本回答被提问者采纳第3个回答 2013-07-26
l = "C" ‘列字母必须大写
If Application.WorksheetFunction.CountA(Columns(Asc(l) - 64)) = 0 Then
MsgBox l & "列为空"
End If本回答被网友采纳
If Application.WorksheetFunction.CountA(Columns(Asc(l) - 64)) = 0 Then
MsgBox l & "列为空"
End If本回答被网友采纳