特定工作表的列数

时间:2019-02-15 11:33:27

标签: excel vba

Function getMaxColumnCount() As Long

         Dim lColumn As Long, sh As Worksheet
         Set sh = ThisWorkbook.Sheets("Sheet1")
        lColumn = sh.Cells(6, Columns.count).End(xlToLeft).Column
        getMaxColumnCount = lColumn

End Function

在sheet1中,我的数据从第6行和第2列开始,最后以第25列结束。 使用上面的函数,它返回的最大列数为25

现在我像一个场景一样有两组数据

在同一张纸中,只有两组数据 第一组数据(6,2)至(6,25)  第二组数据从(6,30)到(6,50),对于我想使用上述代码将其输出为20的情况,我应该怎么做

1 个答案:

答案 0 :(得分:2)

  

因此,请明确一下,如果您的第一组数据有23列,而第二组数据有20列,并且说有第3组数据有5列,那么您想要5个答案吗?另外,所有集合之间是否将至少有一个空白单元格? – Siddharth Rout 5分钟前编辑

     

@Siddharth Rout是的,只有这样– 2分钟前uservba12

这是您要尝试的吗?

逻辑:获取最后一列,然后找到之前的空白单元格。减去以获得列数。

代码

Option Explicit

Function GetLastSetColumnCount() As Long
    Dim lCol As Long
    Dim BlankCol As Long
    Dim i As Long
    Dim ws As Worksheet

    Set ws = Activesheet '~~> OR relevant sheet

    With ws
        lCol = .Cells(6, .Columns.Count).End(xlToLeft).Column

        For i = lCol To 1 Step -1
            If Len(Trim(.Cells(6, i).Value)) = 0 Then
                BlankCol = i
                Exit For
            End If
        Next i
    End With

    GetLastSetColumnCount = lCol - BlankCol
End Function