VBA到CountBlank每列的前10行(1到50)

我正试图让下面的代码工作。 我想为每个工作表中列1到50的空白单元格计数。 下面的工作,但它占整个专栏。 我怎样才能改变它只计算每列的前10行,如果他们都是空白,然后改变列的宽度为1?

非常感谢

For j = 1 To 50 Blanks = WorksheetFunction.CountBlank(Worksheet.Columns(j)) If Blanks > 10 Then ws.Columns(j).ColumnWidth = 1 End If Next j 

如果您只想检查前10行,则需要在CountBlank函数中指定此行。 您的CountBlank(Worksheet.Columns(j))正在计算整个列。

此外, If Blanks > 10 Then将永远不会计算为True因为您只需要计数10行。 我把这个expression式改成If Blanks = 10

 Sub countTest() Dim wks As Worksheet Set wks = Worksheets("Sheet1") For j = 1 To 50 Blanks = WorksheetFunction.CountBlank(wks.Range(Cells(1, j), Cells(10, j))) If Blanks = 10 Then wks.Columns(j).ColumnWidth = 1 End If Next j Set wks = Nothing End Sub 

尝试这样的事情:

 Dim i As Integer Dim j As Integer Dim k As Integer For i = 1 To 50 k=0 For j = 1 to 10 If Activesheet.Cells(j,i).Value = "" Then k=k+1 End If Next j If k = 10 Then Activesheet.Columns(i).ColumnWidth = 1 End If Next i 

让我知道是否有任何问题。