ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 分行符前加<br>

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-11-8 18:46 | 显示全部楼层
YZC51 发表于 2019-11-8 16:46
或者
Private Sub CommandButton1_Click()
Range("c2") = Replace("" & Range("a2"), Chr(10), Chr(10) & ...

Function MUZI(a, Optional smin = "", Optional smax = "", Optional t = 0)

arr = a
s1 = smin
s2 = smax
's3 = (s1 - s2 + 1) / 3
If Not IsArray(arr) Then
    ReDim brr(1 To 1, 1 To 1)
    brr(1, 1) = a
    arr = brr
End If

If s1 = "" Then   '三余
    For i = 1 To UBound(arr)
        If arr(i, 1) <> "" Then
            ReDim qu(2)
            For j = 1 To 3
                s3 = Mid(arr(i, 1), j, 1) Mod 3
                qu(s3) = qu(s3) + 1
            Next
            mm = ""
            zm = ""
            For j = 0 To 2
                If qu(j) = 1 Then
                    zm = j
                ElseIf qu(j) = 2 Then
                    mm = j
                ElseIf qu(j) = 3 Then
                    mm = j & j
                End If
            Next
            If mm = "" Then arr(i, 1) = 33 Else arr(i, 1) = mm & zm
      If t = 1 Then arr(i, 1) = --Left(arr(i, 1), 1)
      If t = 2 Then arr(i, 1) = --Right(arr(i, 1), 1)
        Else
            arr(i, 1) = ""
        End If
    Next
Else        '三区
    For i = 1 To UBound(arr)
        If arr(i, 1) <> "" Then
            ReDim qu(2)
            For j = 1 To 3
                If Val(Mid(arr(i, 1), j, 1)) <= s1 Then
                    qu(0) = qu(0) + 1
                ElseIf Val(Mid(arr(i, 1), j, 1)) <= s2 Then
                    qu(1) = qu(1) + 1
                Else
                    qu(2) = qu(2) + 1
                End If
            Next
            mm = ""
            zm = ""
            For j = 0 To 2
                If qu(j) = 1 Then
                    zm = j
                ElseIf qu(j) = 2 Then
                    mm = j
                ElseIf qu(j) = 3 Then
                    mm = j & j
                End If
            Next
            If mm = "" Then arr(i, 1) = 33 Else arr(i, 1) = mm & zm
      If t = 1 Then arr(i, 1) = --Left(arr(i, 1), 1)
      If t = 2 Then arr(i, 1) = --Right(arr(i, 1), 1)
        Else
            arr(i, 1) = ""
        End If
    Next
End If
MUZI = arr
End Function

老师,只有在第一参数  LEN(a)=3   个字符时,才会显示上面代码运算的输出结果;     如果LEN(a)<>3,则输出结果应该屏蔽为空白【即必须是三位数的数据,才能显示计算结果,否则将输出结果屏蔽为空白!】
    这一句命令应该加在哪个地方最合适?

TA的精华主题

TA的得分主题

发表于 2019-11-8 18:50 | 显示全部楼层
WYS67 发表于 2019-11-8 18:46
Function MUZI(a, Optional smin = "", Optional smax = "", Optional t = 0)

arr = a

请参考
If LEN(a) <> 3 Then MUZI = "" : Exit Function
加在第一句前面

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-11-12 14:35 | 显示全部楼层
  1. Sub 添加前缀()
  2.     Dim arr, m%, brr()
  3.     Dim Reg As Object
  4.     Set Reg = CreateObject("VbScript.RegExp")
  5.     arr = Intersect(Range("A:A"), ActiveSheet.UsedRange)
  6.     ReDim brr(1 To UBound(arr, 1), 1 To 1)
  7.     brr(1, 1) = "修改后"
  8.     For m = 2 To UBound(arr, 1)
  9.         With Reg
  10.             .Pattern = "^"
  11.             '"^|$"使得每一行文本前后都加上特定字符串;"^|"在每个字符后都加上,"^"仅在每行开头加上特定字符串。
  12.             .Global = True
  13.             .MultiLine = True
  14.             If .test(arr(m, 1)) Then
  15.                 brr(m, 1) = .Replace(arr(m, 1), "<br>")
  16.             Else
  17.                 brr(m, 1) = arr(m, 1)
  18.             End If
  19.         End With
  20.     Next
  21.     Range("D:D").Clear
  22.     Range("D1").Resize(UBound(brr, 1), 1) = brr
  23. End Sub
复制代码
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

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

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

GMT+8, 2024-4-19 22:49 , Processed in 0.035877 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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