首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

请问!excel宏:判断,满足条件后插入行的代码

2012-01-29 
请教!excel宏:判断,满足条件后插入行的代码现在我要实现的内容是:比如,A列中,比较A2与A1的值,如果满足某一

请教!excel宏:判断,满足条件后插入行的代码
现在我要实现的内容是:

比如,A列中,比较A2与A1的值,如果满足某一个条件,就在A2和A1间插入一行。之后,再比较A3和A2的值,以此类推,最后到表的结尾。

想写在宏里面。

代码方面,出现问题。想请教高手。

1   行是变化的,那么我该如何表示呢?(我对VB其实一点都不懂的)
我可以像以前学过的其他语言那样,设个变量i   然后就用Ai来表示么?
2   插入行就用Selection.Insert   Shift:=xlDown   这个语句就可以了么?

恳求高手指教啊~~~~

[解决办法]
Sub insert()
Dim i As Long
i = 1
While Worksheets( "sheet1 ").Range( "A " & i + 1).Value <> " "
If Worksheets( "sheet1 ").Range( "A " & i).Value < Worksheets( "sheet1 ").Range( "A " & i + 1).Value Then '插入条件为A i <A i+1
Worksheets( "sheet1 ").Rows(i + 1 & ": " & i + 1).Select
Selection.insert Shift:=xlDown
Worksheets( "sheet1 ").Range( "A " & i + 1).Value = Worksheets( "sheet1 ").Range( "A " & i).Value + Worksheets( "sheet1 ").Range( "A " & i + 2).Value '插入一行后附值:前后两个单元格的和,可随意制定
End If
i = i + 1
Wend
End Sub

[解决办法]
我也是菜鸟,供你参考。(Office 2003)
Sub 插入空行()
Application.ScreenUpdating = False '刷屏停止 为提高速度
MAX_H = Sheets(1).UsedRange.Rows.Count '最大行号
For I = 1 To MAX_H '第一行到最大行号
前值 = Cells(I, 1).Value '第一列,I行==A1(初值)
后值 = Cells(I+1, 1).Value '第一列,I+1行==A2(初值)
If 后值 = 前值 And 其它条件 Then
Rows(I + 1).Select '选中整行
Selection.Insert Shift:=xlDown
MAX_H = MAX_H + 1 '最大行号增加
End If

Next I

Application.ScreenUpdating = True '刷屏恢复
End Sub

热点排行