Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2827|回复: 5

求大神帮助,怎样只保留周五的收盘价

[复制链接]
发表于 2013-12-6 13:48 | 显示全部楼层 |阅读模式
5学分
求大神帮助,下表数据中怎样把每个表中除了周五外其他的收盘价所对应的行都删除,谢谢啦

123.zip

211.64 KB, 下载次数: 9

发表于 2013-12-6 14:06 | 显示全部楼层
公式
  1. =WEEKDAY(A3,2)
复制代码
计算对应的星期,再筛选删除
123.zip (176 KB, 下载次数: 3)
回复

使用道具 举报

 楼主| 发表于 2013-12-6 14:16 | 显示全部楼层
zhp3 发表于 2013-12-6 14:06
公式计算对应的星期,再筛选删除

你好,谢谢能不能实现程序化操作,因为我要删除的表比较多,
下面是我编的一个但老出问题
Sub Test()
    Dim A()
    Dim i, j, n, y
    For j = 1 To Sheets.Count
        With Sheets(j).Select
        n = Range("a65536").End(xlUp).Row
    For i = 1 To n - 2
        A(i, 1) = Sheets(j).Range(i + 2, 1).Value
          If Application.WorksheetFunction.Weekday(A(i, 1), 2) <> 5 Then A(i, 3) = 1 '标记非星期五
       Next i
            On Error Resume Next
            Application.DisplayAlerts = False
            .Range("c:c").SpecialCells(xlCellTypeConstants).EntireRow.Delete
            On Error GoTo 0
        End With
    Next j
End Sub

回复

使用道具 举报

发表于 2013-12-6 19:17 | 显示全部楼层
这个用SQL来实现也不错了。
回复

使用道具 举报

发表于 2013-12-6 19:56 | 显示全部楼层
  1. Sub ADOtest()
  2.     Dim AdoConn As Object, AdoRst As Object
  3.     Dim StrConn$
  4.     Dim strSQL$, strCondition$
  5.    
  6.     Const adUseClient = 3
  7.     Const adModeRead = 1

  8.     On Error GoTo ErrorHandler
  9.    
  10.     Set AdoConn = CreateObject("ADODB.Connection")
  11.    
  12.     strSQL = "select  * from ["
  13.     strCondition = "$a2:b] where weekday(日期,2)=5"

  14.     Select Case Application.Version
  15.         Case "14.0", "12.0"
  16.             StrConn = "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source='" & ThisWorkbook.FullName & "';Extended Properties='Excel 12.0;HDR=1;imex=1';"
  17.         Case Else
  18.             StrConn = "Provider= Microsoft.Jet.OLEDB.4.0;" & "Data Source='" & ThisWorkbook.FullName & "';Extended Properties='Excel 8.0;HDR=1;imex=1';"
  19.     End Select
  20.     Application.ScreenUpdating = False
  21.     Application.DisplayAlerts = False
  22.    
  23.     With AdoConn
  24.         .CommandTimeout = 5
  25.         .ConnectionTimeout = 5
  26.         .CursorLocation = adUseClient
  27.         .Mode = adModeRead
  28.         .ConnectionString = StrConn
  29.         .Open
  30.     End With

  31.     For Each sht In Worksheets
  32.         With sht.Range("a2")
  33.             .Resize(, 2).Value = Array("日期", "收盘")
  34.             Set AdoRst = AdoConn.Execute(strSQL & sht.Name & strCondition)
  35.             .CurrentRegion.Offset(2).ClearContents
  36.             .Offset(1).CopyFromRecordset AdoRst
  37.         End With
  38.     Next
  39.     Application.ScreenUpdating = True
  40.     Application.DisplayAlerts = True

  41.     MsgBox "提取完成"
  42.     Set AdoConn = Nothing
  43.     Exit Sub

  44. ErrorHandler:
  45.     Application.ScreenUpdating = True
  46.     Application.DisplayAlerts = True
  47.     MsgBox Err.Number & vbCrLf & Err.Description
  48.     Set AdoRst = Nothing
  49.     Set AdoConn = Nothing
  50. End Sub
复制代码
回复

使用道具 举报

发表于 2013-12-6 19:59 | 显示全部楼层
代码执行后,所有非周五的交易记录全没了,如果担心数据的话,记得先备份吧。
另外,格式要求与你附件的一致,这样代码就能执行正确。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-5 17:51 , Processed in 0.649983 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表