写一个宏来解决EXCEL的问题,求解答

如果D-F不等于0,则A至D列自动 下移一行,求解,或者 EXCEL函数可以解决这个问题
希望产生的效果是如果 D-E不等于0,则A至D列平等下移一行,并再次运行D-E,

是D-F还是D-E哟?那图中所有所有都不等于0,都要在A~D插入空行?EF不下移吗?感觉表格混乱了。追问

说错了。。是D-E,E是标准,不下移。。

追答

你的意思是不是要使D列与E列相同的数成为同一行,那么D列有E列没有的数就要在EF插入空行与这对应才行,并且DE两列数据必须要按相同的顺序排列才行。如果是这样,代码如下:

Sub E_F()
   Dim Ra As Range
   For Each Ra In Range("E2", [e65536].End(3))
      If IsEmpty(Ra) Or IsEmpty(Ra.Offset(, 1)) Then Exit For
      If Ra > Ra.Offset(, 1) Then Ra.Offset(, -4).Resize(, 5).Insert
      If Ra < Ra.Offset(, 1) Then Ra.Offset(, 1).Resize(, 2).Insert
   Next
End Sub

上述代码是针对从小到大排列的,如果从大到小,>和< 两个符号相互交换即可。

Sub E_F()
Dim Ra As Range
For Each Ra In Range("D2", [D65536].End(3))
If IsEmpty(Ra) Or IsEmpty(Ra.Offset(, 1)) Then Exit For
If Ra > Ra.Offset(, 1) Then Ra.Offset(, -3).Resize(, 4).Insert
If Ra < Ra.Offset(, 1) Then Ra.Offset(, 1).Resize(, 2).Insert
Next
Range("F2", [F65536].End(3)).FormulaR1C1 = "=RC[-2]-RC[-1]"
End Sub

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-06
vba在线讲解 代码提供
相似回答