1
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 用于使用上面的代码我应该做什么改变

4

1 回答 1

2

所以为了清楚起见,如果你的第一组数据有 23 列,第二组有 20 列,假设有第三组有 5 列,那么你想要 5 作为答案?是否所有集合之间都至少有一个空白单元格?– Siddharth Rout 5 分钟前 编辑

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

这是你正在尝试的吗?

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

代码

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
于 2019-02-15T11:47:37.297 回答