Vba 我的代码不执行
我运行下面的代码,VBA只闪烁一毫秒,没有给出结果。无论我如何编辑代码,VBA都不会执行它 我很困惑。但是,如果我运行我的原始代码,它会工作…我尝试对我的原始代码进行相同的编辑,VBA将运行,但在几次尝试后将停止运行 有人知道到底发生了什么吗 起始代码:Vba 我的代码不执行,vba,excel,Vba,Excel,我运行下面的代码,VBA只闪烁一毫秒,没有给出结果。无论我如何编辑代码,VBA都不会执行它 我很困惑。但是,如果我运行我的原始代码,它会工作…我尝试对我的原始代码进行相同的编辑,VBA将运行,但在几次尝试后将停止运行 有人知道到底发生了什么吗 起始代码: Sub LeadDetailsQR() Dim OgData As String OgData = ActiveSheet.Name Sheets(OgData).AutoFilterMode = False
Sub LeadDetailsQR()
Dim OgData As String
OgData = ActiveSheet.Name
Sheets(OgData).AutoFilterMode = False
varMyData = Sheets(OgData).Range("AK2", Range("AK" & Rows.Count).End(xlUp)).Value
With CreateObject("scripting.dictionary")
For Each varItem In varMyData
If Not IsEmpty(varItem) Then .Item(varItem) = Empty
Next varItem
For Each varItem In .keys
Cells.AutoFilter
Sheets.Add Before:=ActiveSheet
Application.DisplayAlerts = False
On Error Resume Next
ActiveWorkbook.Worksheets(varItem).Delete
On Error GoTo 0
Application.DisplayAlerts = True
ActiveSheet.Name = varItem
Sheets(OgData).Select
Sheets(OgData).Range("AK1").AutoFilter Field:=37, Criteria1:=varItem
Sheets(OgData).Cells.CurrentRegion.Copy
Sheets(varItem).Cells.PasteSpecial Paste:=xlPasteColumnWidths
Sheets(OgData).Cells.CurrentRegion.Copy
Sheets(varItem).Cells.PasteSpecial Paste:=xlPasteAll
Next varItem
End With
Sheets(OgData).AutoFilterMode = False
End Sub
原始代码(作品):
我不好意思说我已经找到了答案。代码正在做它正在做的事情。它运行时没有出错,因为它所查找的范围为空,因此不会创建任何内容
如果我不清楚,让我解释一下代码。代码应该基于列中的每个唯一值创建一个新的工作表。代码运行时没有产生任何结果,因为我要求代码查看AK列,这是一个空白列。因此,它当然不会产生任何结果:)使用调试器并逐步检查代码以查看失败的地方。我们不能为您这样做,因为我们没有您的工作表。发布代码时,请花一些时间缩进它-如果您的代码易于阅读,您更有可能获得帮助。一大块左对齐的代码很难扫描。@KenWhite没有返回的错误代码/错误。工作表保持不变。这正是我说在调试器中逐步检查代码的原因,在调试器中,您可以看到代码的每一行都发生了什么。再说一遍,我们不能为你这样做。逐行遍历可以让您看到哪些行正在实际执行(哪些不是),检查变量的值以确保它们包含您所期望的内容,并查看代码中是否存在逻辑错误。我确切地知道您的意思,我会在调试器(F8)中逐步遍历代码,但没有任何代码实际运行。没有一行。
Sub LeadDetailsQROriginal()
Dim OgData As String
OgData = ActiveSheet.Name
Sheets(OgData).AutoFilterMode = False
varMyData = Sheets(OgData).Range("A2", Range("A" & Rows.Count).End(xlUp)).Value
With CreateObject("scripting.dictionary")
For Each varItem In varMyData
If Not IsEmpty(varItem) Then .Item(varItem) = Empty
Next varItem
For Each varItem In .keys
Sheets.Add Before:=ActiveSheet
ActiveSheet.Name = varItem
Sheets(OgData).Range("A1").AutoFilter Field:=1, Criteria1:=varItem
Sheets(OgData).Select
Sheets(OgData).Range("A1").CurrentRegion.Copy
Sheets(varItem).Range("A1").PasteSpecial Paste:=xlPasteColumnWidths
Sheets(OgData).Range("A1").CurrentRegion.Copy
Sheets(varItem).Range("A1").PasteSpecial Paste:=xlPasteAll
Next varItem
End With
Sheets(OgData).AutoFilterMode = False
End Sub