Office中国论坛/Access中国论坛
标题: ****已经解决 ,, [打印本页]
作者: ppsnow 时间: 2006-9-26 19:25
标题: ****已经解决 ,,
真的是绞尽脑汁了,不知道怎么改了,真的是好急,帮我看看吧,大虾们,老鬼的方法试过了,不对,
我试过clearcontent,还有value=“”,可是总是不对,不能正确删除我要的内容。
不知道怎么在循环中修改, ,,,,,,
问题具体都写在附件中,问题是怎么删除一行里某些连续单元格的内容和格式,而使行里的其他单元格和格式都保持不动,
Windows(w).Activate
Sheets(s).Activate
Range("J21:J" & ende).Select
For i = 1 To ActiveSheet.UsedRange.Rows.Count
If ActiveCell.Value < Date Then
ActiveCell.EntireRow.Delete (这个就是删除整行,但是现在只要删除满足条件的行里B到J单元格的值和格式)
Else
ActiveCell.EntireRow.Show
ActiveCell.Offset(1, 0).Select
End If
Next i
[attach]20736[/attach]
[此贴子已经被作者于2006-10-21 22:22:31编辑过]
作者: 老鬼 时间: 2006-9-26 19:38
Range("B21:J21").ClearContents
作者: ppsnow 时间: 2006-9-27 23:29
我等,,,我等,,,,
作者: ppsnow 时间: 2006-9-28 17:40
[em11][em02][em03][em06][em06][em06][em06]为自己顶一下,,,急死了
作者: ppsnow 时间: 2006-9-29 01:09
哦,,, ,, my god ///// 偶不适合编程
作者: 老鬼 时间: 2006-9-29 03:01
不懂你的黑色幽默
作者: ppsnow 时间: 2006-9-29 22:39
什么幽默,人都急坏了,还幽什么默阿
作者: 老鬼 时间: 2006-9-30 02:58
不懂你要做什么啊
作者: ppsnow 时间: 2006-10-7 07:16
先祝大家中秋快乐
作者: ppsnow 时间: 2006-10-7 07:19
就是一行里的数据只删除前面的一些数据, 保持后面不动.
作者: ppsnow 时间: 2006-10-7 07:25
Windows(w).Activate
Sheets(s).Activate
Range("J21:J" & ende).Select '在表中以j列作为判断,
For i = 1 To ActiveSheet.UsedRange.Rows.Count
If ActiveCell.Value < Date Then ’如果项目的结束日期小于今天
ActiveCell.EntireRow.Delete ’则删除该行B:J 区域的内容,但是Q以后的行列都保持不变化,
Else
ActiveCell.EntireRow.Show
ActiveCell.Offset(1, 0).Select
End If
Next i 依次寻找, 删除符合条件的数据。
鬼主, 这样有没有明白我的意思,
作者: ppsnow 时间: 2006-10-9 22:38
为了不沉下去,我再努力一把,
作者: 方漠 时间: 2006-10-12 22:45
试试这个是不是你想要的结果?
If ActiveCell.Value < Date Then
'ActiveCell.EntireRow.Delete
Range("B" & i & ":I" & i).Select
Selection.ClearContents
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Range("J" & i).Select
Selection.ClearContents
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Else
作者: ppsnow 时间: 2006-10-12 23:15
方漠哥哥,,运行后的结果是K列以前的全都清除了,没有把〉Date的数据保留下来,,,,,
我要的结果是从21行和J列开始把满足〉date的留下,其他的内容清空,清空后把下一条未清除记录填上来,即使数据中没有空行。
[此贴子已经被作者于2006-10-13 13:52:16编辑过]
作者: 老鬼 时间: 2006-10-13 03:53
俺呢,就是不明白你的意思,是不是下面这样的?
Selection.Delete Shift:=xlUp
作者: ppsnow 时间: 2006-10-13 21:39
即以j 列(21行开始)做判断,如果J21开始的单元格的数据<date,那就把相应该行的B:J的内容清除, 依次循环,方漠的程序只是把b到j的内容清除,但是把不该清除的也清楚了,执行完之后一片空白。
清除完之后,那就有空白行了吗,但是不能有,要把未删除的数据都相应移上来, 比如说:34行b:j的内容和格式被清除了,但是35行没有清除,那就要把35行的数据放到34行,36的数据放到35行。。。。。。
我的表达估计有问题,唉,,,急得了,我做梦都在想,,,,
作者: ppsnow 时间: 2006-10-13 21:55
期待中,,,,,,,,,
作者: 老鬼 时间: 2006-10-14 01:44
按你的意思,我写的那句不就行了吗
作者: ppsnow 时间: 2006-10-14 22:21
对的, 你写的没有错,可是程序整个运行后的结果还是不对,
用方漠的程序,结果不对的,结果是把所有的数据都删了,没有保存任何的数据,
[此贴子已经被作者于2006-10-16 13:50:26编辑过]
作者: ppsnow 时间: 2006-10-16 21:52
继续等待,,,,,
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) |
Powered by Discuz! X3.3 |