返回列表 上一主題 發帖

[發問] 如何能找到最後一列有資料的列數?(忽略空格)

初学VBA,写的东西供您参考
  1. Sub Example()
  2. Application.ScreenUpdating = False
  3. Application.EnableEvents = False
  4. Dim r As Range, i As Integer, j As Integer, temp As Integer
  5. Dim c As Integer, str As String
  6. j = 10   'HEADING 总共有10页
  7. temp = 0 '初始化数据
  8. c = Rows.Count
  9. For i = 1 To Worksheet.Count
  10.     str = Worksheet(i).Name
  11.     For Each r In Worksheet(i)
  12.         If Trim(r.Value) = "" Then
  13.         r.ClearContents
  14.         End If
  15.     Next r
  16.     For i = 1 To j
  17.         temp = temp + Cells(c, i).End(xlUp).Row - 2
  18.     Next i
  19.     If temp = 0 Then
  20.         Worksheet(str).Delete
  21.     End If
  22. Next i
  23. Application.EnableEvents = True
  24. Application.ScreenUpdating = True
  25. End Sub
複製代碼
向高手学习

TOP

另分享一些返回最后一个非空单元格的相关应用

返回最后一个非空单元格的内容:
=lookup(2,1/(A1:A10<>""),A1:A10) '
=lookup(9E+307,M5:M23,M5:M23)    '忽略文本
=lookup(9E+307,M5:M23)           '忽略文本

A1:A20存放着数字、文本、错误值等
=LOOKUP(9E+307,A1:A20)                        返回数值
=LOOKUP(9E+307,A1:A20,ROW(A1:A20))        返回行号
=LOOKUP(2,1/(A1:A20<>""),A1:A20)        返回非空单元格
=LOOKUP(2,1/(A1:A20<>""),ROW(A1:A20))        返回行号
=LOOKUP(2,1/(A1:A20<>0),A1:A20)                返回非零单元格
=LOOKUP(2,1/(A1:A20<>0),ROW(A1:A20))        返回行号
=LOOKUP(2,1/(A1:A20="a"),A1:A20)        返回指定文本单元格
=LOOKUP(2,1/(A1:A20="a"),ROW(A1:A20))        返回行号
=LOOKUP(2,1/(1-ISBLANK(A1:A20)),A1:A20)        返回非空单元格
=LOOKUP(2,1/(1-ISBLANK(A1:A20)),ROW(A1:A20))        返回行号
=LOOKUP(2,1/((A1:A20<>0)*ISNUMBER(A1:A20)),A1:A20)        返回不为零非空单元格
=LOOKUP(2,1/((A1:A20<>0)*ISNUMBER(A1:A20)),ROW(A1:A20))        返回行号
=VLOOKUP(9E+307,A1:A20,1,1)                返回最大数值
=VLOOKUP(REPT("龠",255),A1:A20,1,1)        返回最大文本
=INDEX(A1:A20,,MATCH("*",A1:A20,-1))        返回任意值
=INDEX(A1:A20,MAX(IF(A1:A20<>"",ROW(A1:A20))))        返回非空单元格
返回最后的“行号”
----非空值(方法一)        
LOOKUP(2,1/(A3:A65536<>""),row(A3:A65536))
----非空值(方法二)        
LOOKUP(2,1/(1-ISBLANK(A3:A65536)),row(A3:A65536))
----非空值(方法三  数组公式)        
MAX((A3:A65536<>"")*ROW(A3:A65536))
----数值(方法一)        
LOOKUP(9E+307,A:A)
----数值(方法二)        
MATCH(9E+307,A:A)
----文本(方法一)        
LOOKUP("座",row(A:A))
----文本(方法二)      
MATCH("座",A:A)
向高手学习

TOP

        靜思自在 : 知識要用心體會,才能變成自己的智慧。
返回列表 上一主題