ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: YZC51

[讨论] 自定义函数--提取单元格内多个被分开的数字

  [复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-12-14 06:38 | 显示全部楼层
'自定义函数:sx() 单元格内按升序排列:
http://club.excelhome.net/thread-193520-1-1.html

Function sx(T_rng As Range)
Dim a() As String
sx = T_rng.Text
s = Len(sx)
ReDim a(1 To s) As String
For i = 1 To s
a(i) = Mid(sx, i, 1)
Next i
For m = 1 To s
For j = 2 To s
If a(j - 1) > a(j) Then
t = a(j - 1)
a(j - 1) = a(j)
a(j) = t
End If
Next j
Next m
sx = ""
For i = 1 To s
sx = sx & a(i)
Next i
End Function
'如果要按降序排列,把代码中的大于号换成小于号即可。

评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-12-21 09:42 | 显示全部楼层
自建转置函数
Function TranVariant(ByVal vData As Variant) As Variant
'转置数组
    Dim vNewData As Variant, nRow As Double, nCol As Double
   
    If IsArray(vData) Then
        ReDim vNewData(1 To UBound(vData, 2) - LBound(vData, 2) + 1, 1 To UBound(vData) - LBound(vData) + 1)
        For nRow = 1 To UBound(vNewData)
            For nCol = 1 To UBound(vNewData, 2)
                If Not IsNull(vData(nCol + LBound(vData, 2) - 1, nRow + LBound(vData) - 1)) Then _
                    vNewData(nRow, nCol) = vData(nCol + LBound(vData, 2) - 1, nRow + LBound(vData) - 1)
            Next
        Next
        vData = vNewData
    End If
    TranVariant = vData
End Function
http://club.excelhome.net/thread-1452553-1-1.html
2楼

评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-12-22 15:06 | 显示全部楼层
Public yzc
Sub auto_open()                                     '打开文件后每10分钟执行宏
    Application.OnTime Now + TimeValue("00:10:00"), "auto_open"
    If yzc > 0 Then Call bc
    yzc = yzc + 1
    'Sheet2.Cells(yzc, 1) = yzc
End Sub

Sub bc() '保存工作簿
    ThisWorkbook.Save
End Sub

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2018-12-26 12:43 | 显示全部楼层
YZC51 发表于 2018-9-9 20:56
Function WLOOKUP(X As Range, M As Variant, Optional a = 1, Optional b = 2)
    '比VLOOKUP函数更强大 ...

能上个附件举例子吗

TA的精华主题

TA的得分主题

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

TA的精华主题

TA的得分主题

发表于 2018-12-26 14:42 | 显示全部楼层
YZC51 发表于 2018-12-26 12:49
请参考
http://club.excelhome.net/forum.php?mod=viewthread&tid=1453309&page=1#pid9770707

只支持VBA吗?不能直接用吗?

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-12-26 15:54 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
可以直接用!

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-12-27 08:00 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
获取工作表和簿的名称
Function ShtName(Optional yzc = "") As String
  '  ShtName = ActiveSheet.Parent.FullName                  '工作簿名称可能有路径
    ShtName = ActiveSheet.Name                              '工作表名称
    If yzc <> "" Then ShtName = ActiveSheet.Parent.Name     '工作簿名称
End Function

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-1-8 11:12 | 显示全部楼层
本帖最后由 YZC51 于 2019-1-8 19:00 编辑

Function F(a1, a2, R) '"扣除节假日的工作日 和 扣除周六周日"
    If a1 = "" Then F = "": Exit Function
    ReDim arr(R(1) To R(R.Count))
    For i = 1 To R.Count
        arr(Int(R(i))) = 1
    Next
    F = Int(a2) - Int(a1)
    On Error Resume Next
    For i = Int(a1) To Int(a2)
        F = F - arr(i)
    Next
End Function

评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-1-8 12:14 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
扣除节假日的工作日 附件
直接日期相减.zip (14.76 KB, 下载次数: 55)

评分

2

查看全部评分

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

本版积分规则

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

GMT+8, 2024-11-15 22:59 , Processed in 1.048336 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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