我正在尝试使用以下代码。我想在每个工作表中计算第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
答案 0 :(得分:1)
尝试这样的事情:
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
如果有任何问题,请告诉我。
答案 1 :(得分:1)
如果您只想查看前10行,则需要在CountBlank
函数中指定此行。您的CountBlank(Worksheet.Columns(j))
正计算整个列。
此外,由于您只想计算If Blanks > 10 Then
行,因此True
永远不会评估为10
。我已将该表达式更改为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