刘素月丈夫:请教Excel宏高手

来源:百度文库 编辑:高考问答 时间:2024/05/11 16:10:12
在Excel如何利用宏,编辑这样一个小程序,使得在Range("D2:DE55")区域中,如果Sum("D2:D55")的和为0,则删除此列,接着循环下一列,,直至检验完最后一列,谢谢!
最好给出源代码

请参考,运行时请选中第一个要处理的列的第一个单元格
=================================================
Sub Macro2()
'
' Macro2 Macro
' 宏由 fearofblood 录制,时间: 2006-7-21
'
'hasMoreData用于判断该列是否含有数据
hasMoreData = ActiveCell.Value
'主循环,逐列处理
While (hasMoreData <> 0)
ActiveCell.Offset(55, 0).Range("A1").Select '从当前位置调整到第56行,(行偏移,列偏移)
ActiveCell.FormulaR1C1 = "=SUM(R[-54]C:R[-1]C)" '计算sum值
num = ActiveCell.Value '获取sum值,并判断是否为0
If (num = 0) Then
ActiveCell.Columns("A:A").EntireColumn.Select
Selection.Delete Shift:=xlToLeft '删除整列
ActiveCell.Offset(55, 0).Range("A1").Select
Else
ActiveCell.Offset(0, 1).Range("A1").Select
End If
ActiveCell.Offset(-55, 0).Range("A1").Select
hasMoreData = ActiveCell.Value
Wend '主循环完整
End Sub
========================================================
不对之处欢迎讨论和指正

有难度,看了闪人

没碰到过,快闪。

路过