VBA-确定Excel数据表范围是否有任何数据/值,而不在该范围内的每个单元格中循环

VBA-确定Excel数据表范围是否有任何数据/值,而不在该范围内的每个单元格中循环,excel,vba,Excel,Vba,我很难确定整个数据范围(Excel数据表的一列)是否包含任何值。在循环遍历范围内的每一行数据(以便将其导出为.CSV)之前,我将尝试确定给定列中是否有任何数据。如果没有,我将只移动到Excel数据表中的下一列,而不是浪费时间在列中的每个单元格中循环 For Each tbl In WS.ListObjects Set tblRange = tbl.Range ' Determine # of Rows and Columns IntEndRow = tbl.ListRows.Coun

我很难确定整个数据范围(Excel数据表的一列)是否包含任何值。在循环遍历范围内的每一行数据(以便将其导出为.CSV)之前,我将尝试确定给定列中是否有任何数据。如果没有,我将只移动到Excel数据表中的下一列,而不是浪费时间在列中的每个单元格中循环

For Each tbl In WS.ListObjects

Set tblRange = tbl.Range

' Determine # of Rows and Columns
    IntEndRow = tbl.ListRows.Count
    IntEndCol = tbl.ListColumns.Count

For intTableCol = 2 To IntEndCol 'Loop thru each table column starting w/ 2nd column
我尝试了几种不同的方法来确定表列/范围中是否有任何值:

' Determine if individual column has data
    If Not IsEmpty(Range(tblRange.Cells(2, intTableCol), tblRange.Cells(IntEndRow, intTableCol))) Then 
上述方法不起作用,因为即使没有值,它仍在进行,就好像有-我可能不理解如何正确使用IsEmpty。我还想尝试以下方法:

    Set colRange = Range(tblRange.Cells(2, 2), tblRange.Cells(IntEndRow + 1, IntEndCol))
    sumData = Application.Sum(colRange)

但是,即使在我求和的范围内没有值,它也会返回零。用户将被允许输入零作为合法值,因此我不希望一列中有零被认为没有值。我想知道是否有一种方法可以做到这一点,而不必遍历范围/表格列中的每个单元格?

尝试使用工作表函数来计算范围中的非空白单元格:
WorksheetFunction.CountA(tbl.ListColumns(3.range)
@PeterT,非常感谢。这应该对我有用。我在谷歌和Bing上搜索过很多次,但这个功能直到现在才引起我的注意。我还是StackOverflow的新手,我没有足够的信誉点来解决这个问题,或者我不确定是否可以将您的标记为答案?尝试使用工作表函数来计算范围内的非空白单元格:
WorksheetFunction.CountA(tbl.ListColumns(3.range)
@PeterT,非常感谢。这应该对我有用。我在谷歌和Bing上搜索过很多次,但这个功能直到现在才引起我的注意。我对StackOverflow还是个新手,我没有足够的信誉点来解决这个问题,或者我不确定是否可以将你的作为答案?