前言:这种题目在leetcode里就是简单难度,之前用Python写过一个,这次有人有需求就用VBA写了一个玩玩
Sub max_continuity_zero()
'自动算出一行连续为0的最大值
cal_row = InputBox("需要计算的开始行和结束行(如2,5):")
my_rows = VBA.Split(cal_row, ",")
start_row = my_rows(0)
end_row = my_rows(1)
cal_column = InputBox("需要计算的开始列和结束列(如2,6):")
my_column = VBA.Split(cal_column, ",")
start_column = my_column(0)
end_column = my_column(1)
answer_column = CInt(InputBox("最终得出结果放到哪一列(如7):"))
For i = start_row To end_row
max_zero_count = 0 '最终需要导出的连续0最大值
temp_zero_count = 0 '临时的连续0计数
For j = start_column To end_column
If Cells(i, j) = 0 Then
temp_zero_count = temp_zero_count + 1
If temp_zero_count > max_zero_count Then
max_zero_count = temp_zero_count
End If
Else: temp_zero_count = 0
End If
Next
Cells(i, answer_column).Value = max_zero_count
Next
End Sub