Excel VBA宏使Excel崩溃



我已经创建了一个宏与一些帮助与这个网站的美妙的人,找出如果列在这个excel填充,然后将它们分开为一个更大的项目。我的问题是,代码只是崩溃(加载,直到我点击其中我被告知excel是无响应的)excel。能帮我一下吗

Option Explicit
Public Sub emptysinder()
Dim i As Long
Dim r As Range
Dim num As Integer

For i = 1 To 9
Set r = Range("F1").Offset(0, i - 1).Resize(200, 1)
If IsAllEmpty(r) Then
num = num + 1
Debug.Print "Range " & r.Address & " is all empty." & num
ElseIf IsAnyEmpty(r) Then
Debug.Print "Range " & r.Address & " is partially empty."
Else
Debug.Print "Range " & r.Address & " filled."
End If
Next i
split (num)
End Sub
Public Function IsAllEmpty(ByVal r_range As Range) As Boolean
Dim Item As Range
For Each Item In r_range
If Not IsEmpty(Item) Then
IsAllEmpty = False
Exit Function
End If
Next
IsAllEmpty = True
End Function
Public Function IsAnyEmpty(ByVal r_range As Range) As Boolean
Dim Item As Range
For Each Item In r_range
If IsEmpty(Item) Then
IsAnyEmpty = True
Exit Function
End If
Next
IsAnyEmpty = False
End Function
Public Function split(i As Integer)
Dim sheet As Integer
Dim colOpt As Integer
sheet = 14
colOpt = sheet - i
Dim s As Integer
Do While i > 0
For s = 4 To 0
Columns(colOpt).Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
i = i - 1
Next s
Loop
End Function

正如上面Shrotter所说,split函数中的for循环没有执行,因为s值是递增的,而不是递减的。使用For s = 4 To 0 Step -1使s每次迭代减少1。

最新更新