ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 785|回复: 7

[求助] 获取不重复日期组合

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-8-23 21:55 | 显示全部楼层 |阅读模式
哪位大神帮我解决,先谢了
12.jpg

help.rar

9.1 KB, 下载次数: 12

TA的精华主题

TA的得分主题

发表于 2019-8-24 11:29 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-8-24 11:34 | 显示全部楼层
Sub test()
  Dim d, arr, i&, s$
  Set d = CreateObject("Scripting.Dictionary")
  arr = Range("G2", [G65536].End(3)).Value
  For i = 1 To UBound(arr)
    s = CStr(Format(arr(i, 1), "yyyymm"))
    d(s) = Val(s)
  Next
  [a4] = Join(d.keys, ",")
  [a5] = Application.Small(d.items, 1) & "-" & Application.Small(d.items, d.Count)
End Sub

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-8-24 11:41 | 显示全部楼层
Option Explicit
Private Sub CommandButton1_Click()
Dim Cn As Object, S1$, S2$, ar, i%, s$
Set Cn = CreateObject("ADODB.Connection")
Cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;Data Source=" & ThisWorkbook.FullName
S1 = "SELECT DISTINCT FORMAT(日期,'YYYYMM') FROM [Sheet1$G1:G" & [G65536].End(xlUp).Row & "]"
S2 = "SELECT FORMAT(MIN(日期),'YYYYMM'),FORMAT(MAX(日期),'YYYYMM') FROM [Sheet1$G1:G" & [G65536].End(xlUp).Row & "]"
ar = Cn.Execute(S1).GetRows
For i = 0 To UBound(ar, 2)
    s = s & "," & ar(0, i)
Next
With [a1]
    .Resize(2).NumberFormatLocal = "@"
    .Value = Mid(s, 2)
    With .Offset(1)
        .CopyFromRecordset Cn.Execute(S2)
        .Value = Join(WorksheetFunction.Transpose(WorksheetFunction.Transpose(.Resize(, 2))), "-")
        .Offset(, 1) = ""
    End With
End With
Cn.Close
Set Cn = Nothing
End Sub

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-8-24 11:50 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
ar = Cn.Execute(S1).GetRows  
.CopyFromRecordset Cn.Execute(S2)         这段是什么意思

TA的精华主题

TA的得分主题

发表于 2019-8-24 12:23 | 显示全部楼层
6739912 发表于 2019-8-24 11:50
ar = Cn.Execute(S1).GetRows  
.CopyFromRecordset Cn.Execute(S2)         这段是什么意思

Option Explicit
Private Sub CommandButton1_Click() '搞复杂了,这样就行,意思不好解释
Dim Cn As Object, Sq$, ar, i%, s$
Set Cn = CreateObject("ADODB.Connection")
Cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;Data Source=" & ThisWorkbook.FullName
Sq = "SELECT DISTINCT FORMAT(日期,'YYYYMM') FROM [Sheet1$G1:G" & [G65536].End(xlUp).Row & "]"
ar = Cn.Execute(Sq).GetRows
For i = 0 To UBound(ar, 2)
    s = s & "," & ar(0, i)
Next
With [a1]
    .Resize(2).NumberFormatLocal = "@"
    .Value = Mid(s, 2)
    .Offset(1) = ar(0, 0) & "-" & ar(0, i - 1)
End With
Cn.Close
Set Cn = Nothing
End Sub

TA的精华主题

TA的得分主题

发表于 2019-8-24 13:56 | 显示全部楼层
Sub cs()
  Set conn = CreateObject("ADODB.Connection")
  Set jlj = CreateObject("ADODB.Recordset")
  conn.Open "provider=microsoft.ace.oledb.12.0;extended properties='excel 12.0;HDR=yes';data source=" & ThisWorkbook.FullName
  conn.CursorLocation = adUseClient
  jlj.Open "select DISTINCT format(日期,'yyyy') from [Sheet1$g1:g65536];", conn, 1, 3
  Set nian = jlj.Clone(3)
  jlj.Close
  jlj.Open "select DISTINCT format(日期,'mm') from [Sheet1$g1:g65536];", conn, 1, 3
  jlj.ActiveConnection = Nothing
  Do
    Do
      jg = jg & nian.Fields(0).Value & "年" & jlj.Fields(0).Value & "月,"
      jlj.MoveNext
    Loop Until jlj.EOF
    nian.MoveNext
    jlj.MoveFirst
  Loop Until nian.EOF
  nian.MoveFirst
  Application.ScreenUpdating = False
  With Sheet1
    jlj.Sort = 日期
    nian.Sort = 日期
    .[a6] = "最小值:"
    .[b6] = nian.Fields(0).Value & "年" & jlj.Fields(0).Value & "月"
    jlj.MoveLast
    nian.MoveLast
    .[a7] = "最大值:"
    .[b7] = nian.Fields(0).Value & "年" & jlj.Fields(0).Value & "月"
    .[a5] = Left(jg, Len(jg) - 1)
    .[a5].WrapText = True
    .Rows("5:5").EntireRow.AutoFit
  End With
  nian.Close: jlj.Close
  conn.Close
  Application.ScreenUpdating = True
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-8-24 22:07 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

数据源不排序,但结果排序更好
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-25 16:31 , Processed in 0.036656 second(s), 17 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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