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