代码运行时,debbuging(F8)但不正常运行(F5)
当用户按下我的加载项选项卡上的button时,将触发以下代码:
Sub OnActionListaMarkowitz(control As IRibbonControl) GeneratesWorkbook End Sub
在不同的模块中,我有一个子文件来创build一个新的工作簿,并将我的Xlam文件中的工作表复制到新的工作簿中。
Sub GeneratesWorkbook() On Error GoTo LabelErro Set PlanilhaMarkowitz = Workbooks.Add Dim currentSheet As Worksheet Dim sheetIndex As Integer sheetIndex = 1 'Changes xlam property to false so I can copy Xlam sheets to new wb ThisWorkbook.IsAddin = False ThisWorkbook.Activate 'Copy Xlam's sheets to new workbook Sheets("Hidden").Visible = True 'this workbook was very hidden so I make it visible to copy Sheets("Hidden").Copy Before:=PlanilhaMarkowitz.Sheets(sheetIndex) Sheets("Hidden").Visible = xlVeryHidden Sheets("Calculos").Copy Before:=PlanilhaMarkowitz.Sheets(sheetIndex) Sheets("Pesos").Copy Before:=PlanilhaMarkowitz.Sheets(sheetIndex) Sheets("Atributos").Visible = True 'this workbook was very hidden so I make it visible to copy Sheets("Atributos").Copy Before:=PlanilhaMarkowitz.Sheets(sheetIndex) Sheets("Atributos").Visible = xlVeryHidden Sheets("Correl").Copy Before:=PlanilhaMarkowitz.Sheets(sheetIndex) Sheets("Fronteira").Copy Before:=PlanilhaMarkowitz.Sheets(sheetIndex) ThisWorkbook.IsAddin = True Exit Sub LabelErro: ThisWorkbook.IsAddin = True End Sub
奇怪的是,如果我按F8执行这个代码(一步一步),它完美的工作。 但是,如果我正常运行此代码或使用F5它只复制工作表(“隐藏”)。
我已经设置了一个断点
Sheets("Hidden").Visible = True
按F8直到两个潜艇的末端使其工作。 按F5不会。
不要依赖。 激活 。 将工作表复制到新工作簿的操作正在改变活动工作簿。
Sub GeneratesWorkbook() On Error GoTo LabelErro Dim PlanilhaMarkowitz As Workbook Set PlanilhaMarkowitz = Workbooks.Add Dim currentSheet As Worksheet Dim sheetIndex As Integer sheetIndex = 1 With ThisWorkbook 'Changes xlam property to false so I can copy Xlam sheets to new wb .IsAddin = False 'Copy Xlam's sheets to new workbook .Sheets("Hidden").Visible = True 'this workbook was very hidden so I make it visible to copy .Sheets("Hidden").Copy Before:=PlanilhaMarkowitz.Sheets(sheetIndex) .Sheets("Hidden").Visible = xlVeryHidden .Sheets("Calculos").Copy Before:=PlanilhaMarkowitz.Sheets(sheetIndex) .Sheets("Pesos").Copy Before:=PlanilhaMarkowitz.Sheets(sheetIndex) .Sheets("Atributos").Visible = True 'this workbook was very hidden so I make it visible to copy .Sheets("Atributos").Copy Before:=PlanilhaMarkowitz.Sheets(sheetIndex) .Sheets("Atributos").Visible = xlVeryHidden .Sheets("Correl").Copy Before:=PlanilhaMarkowitz.Sheets(sheetIndex) .Sheets("Fronteira").Copy Before:=PlanilhaMarkowitz.Sheets(sheetIndex) .IsAddin = True End With Exit Sub LabelErro: ThisWorkbook.IsAddin = True End Sub
请参阅如何避免使用Excel中的selectVBAmacros来获取更多的方法来摆脱依靠select和activate来实现您的目标。
- 通过Microsoft Visual Basic 6.0debuggingExcelmacros
- 在Excel VBA中检查公共variables的值 – Locals Window Alternative
- 1004错误:没有find单元格,简单的解决scheme?
- Visual Studio 2015 Exceldebugging器不工作
- 如何在C ++ / Excel环境中生成有用的debugging信息
- Excel 2013 VBA Workbooks.Open失去debugging步骤模式?
- Excel VBA – debugging程序在停止程序时崩溃Excel
- 在当前范围内重复声明
- Excel:错误中断不能在用户定义的函数中使用