Vba Excel VB-Foreach循环内部的Foreach循环(循环工作表,删除空行)
我对VB很陌生,有一个可能很简单的问题——我需要浏览工作簿中的所有工作表,删除分散在周围的所有图表,选择有数据的最后一行,向后移动并删除空行。我尝试了从StackOverflow甚至MS站点组装的东西,但似乎没有任何效果Vba Excel VB-Foreach循环内部的Foreach循环(循环工作表,删除空行),vba,excel,foreach,Vba,Excel,Foreach,我对VB很陌生,有一个可能很简单的问题——我需要浏览工作簿中的所有工作表,删除分散在周围的所有图表,选择有数据的最后一行,向后移动并删除空行。我尝试了从StackOverflow甚至MS站点组装的东西,但似乎没有任何效果 Sub DeleteChartsRowsAllSheets() Dim Ws As Worksheet, chtObj As ChartObject, i As Long For Each Ws In ThisWorkbook.Worksheets
Sub DeleteChartsRowsAllSheets()
Dim Ws As Worksheet, chtObj As ChartObject, i As Long
For Each Ws In ThisWorkbook.Worksheets
For Each chtObj In Ws.ChartObjects
chtObj.Delete
Next
'We turn off calculation and screenupdating to speed up the macro.
With Application
'Turn off screen updating and calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
For i = Selection.Rows.Count To 1 Step -1
If WorksheetFunction.CountA(Selection.Rows(i)) = 0 Then
Selection.Rows(i).EntireRow.Delete
End If
Next i
'Turn screen updating and calculation back on
.Calculation = xlCalculationAutomatic
.ScreenUpdating = True
End With
Next Ws
端接头
有什么建议吗 在嵌套循环中将ActiveSheet.ChartObjects替换为ws.ChartObjects
您当前仅删除活动表上的图表。太棒了,它可以正常工作!这是否需要通过表单的循环部分,或者我可以省略下一个Ws部分?