【发布时间】:2014-01-27 13:48:34
【问题描述】:
我有这段代码来消除去规范化层次结构表中的所有异常。当我尝试用一百行记录运行这个宏时,可能大约 200 到 300 行,它工作得很好。但是,当我尝试使用所有行(大约 18,000 行)运行宏时,它会返回“下标超出范围”错误。我不确定代码有什么问题,因为它似乎可以在数百行中正常工作。我正在使用 MS Excel 2010 版本。任何帮助将不胜感激,非常感谢。
这是我的工作代码:
Option Explicit
Sub EliminateAnomaliesDH()
Sheets("Denorm Hier").Select
Range("A1").Select
Dim iCtr As Integer
Dim arr As Variant
iCtr = 2
While Range("B" & iCtr).Value <> ""
arr = Split(Range("B" & iCtr).Value, "[")
arr = Split(arr(1), "]")
Select Case arr(0)
Case "L1"
Range("F" & iCtr & ":AB" & iCtr & "").Value = ""
Case "L2"
Range("H" & iCtr & ":AB" & iCtr & "").Value = ""
Case "L3"
Range("J" & iCtr & ":AB" & iCtr & "").Value = ""
Case "L4"
Range("L" & iCtr & ":AB" & iCtr & "").Value = ""
Case "L5"
Range("N" & iCtr & ":AB" & iCtr & "").Value = ""
Case "L6"
Range("P" & iCtr & ":AB" & iCtr & "").Value = ""
Case "L7"
Range("R" & iCtr & ":AB" & iCtr & "").Value = ""
Case "L8"
Range("T" & iCtr & ":AB" & iCtr & "").Value = ""
Case "L9"
Range("V" & iCtr & ":AB" & iCtr & "").Value = ""
Case "L10"
Range("X" & iCtr & ":AB" & iCtr & "").Value = ""
Case "L11"
Range("Z" & iCtr & ":AB" & iCtr & "").Value = ""
Case "L12"
Range("AB" & iCtr & ":AB" & iCtr & "").Value = ""
End Select
iCtr = iCtr + 1
Wend
Sheets("Instructions").Select
MsgBox "Successfully removed all anomalies of the Denormalized hierarchy Table"
End Sub
【问题讨论】:
-
检查您是否在正确的位置/位置放置了“Denorm Hier”表。
-
@Charles_Stevens 是的