当前位置: 首页 > news >正文

Excel中运行VB的函数

“插入” -》 “模块”

Function FormatCodeFlex(inputStr As String, Optional defaultVal As String = "0") As StringOn Error GoTo ErrorHandlerDim parts() As StringDim i As Integer' 使用 "-" 分割字符串parts = Split(inputStr, "-")' 确保至少有3个部分,不足的用默认值填充ReDim Preserve parts(2)For i = 0 To 2If parts(i) = "" Then parts(i) = defaultValNext i' 格式化每个部分FormatCodeFlex = Format(parts(0), "00") & "-" & _Format(parts(1), "000") & "-" & _Format(parts(2), "000")Exit FunctionErrorHandler:FormatCodeFlex = "输入无效!"
End Function

可能需要编译一下。 不记得了

调用

记录一下备忘。

写一个 excel中的vba函数, 判断 01-000-000 中的最后三位如果是 000 就返回0,如果不是000,就替换为000,并且返回整个字符串。

Function ProcessBOMCode(inputStr As String) As String
On Error GoTo ErrorHandler

Dim parts() As String
Dim lastPart As String

' 检查输入是否为空
If Trim(inputStr) = "" Then
ProcessBOMCode = "输入为空"
Exit Function
End If

' 使用 "-" 分割字符串
parts = Split(inputStr, "-")

' 检查是否有足够的部分
If UBound(parts) < 2 Then
ProcessBOMCode = "格式错误,需要xx-xxx-xxx格式"
Exit Function
End If

' 获取最后三位
lastPart = parts(2)

' 判断最后三位是否为"000"
If lastPart = "000" Then
ProcessBOMCode = 0 ' 返回数字0
Else
' 替换最后三位为"000",并返回整个字符串
parts(2) = "000"
ProcessBOMCode = parts(0) & "-" & parts(1) & "-" & parts(2)
End If

Exit Function

ErrorHandler:
ProcessBOMCode = "处理错误"
End Function

写一个excel的vba 处理 1 1-1 1-1-1 1-1-2 1-2 这样的不定长数据,去掉最后的一个数据。

Function RemoveLastPart(inputStr As String) As String
On Error GoTo ErrorHandler

Dim parts() As String
Dim result As String
Dim i As Integer

' 检查输入是否为空
If Trim(inputStr) = "" Then
RemoveLastPart = ""
Exit Function
End If

' 使用 "-" 分割字符串
parts = Split(inputStr, "-")

' 如果只有一个部分,直接返回空字符串
If UBound(parts) = 0 Then
RemoveLastPart = ""
Exit Function
End If

' 重新组合除最后一部分之外的所有部分
For i = 0 To UBound(parts) - 1
If i > 0 Then result = result & "-"
result = result & parts(i)
Next i

RemoveLastPart = result
Exit Function

ErrorHandler:
RemoveLastPart = "处理错误"
End Function

Deepseek真强。

http://www.dtcms.com/a/343584.html

相关文章:

  • Sklearn 机器学习 房价预估 线性回归模型实现预估
  • 【自用】JavaSE--网络通信
  • 项目架构分享 —— 离线数仓
  • 【neo4j】安装使用教程
  • 最新react,vue 解决无法使用js触发点击,解决方案
  • k8s存储类-storageclass部署
  • 日语学习-日语知识点小记-构建基础-JLPT-N3阶段(18):文法+单词第6回1
  • OpenHarmony之 蓝牙子系统全栈剖析:从协议栈到芯片适配的端到端实践(大合集)
  • 如何正确地捕获并处理异步操作中的错误
  • K 均值聚类算法学习总结
  • Flutter 线程模型详解:主线程、异步与 Isolate
  • 深入 RxJava 插件化开发:打造自定义操作符与监控体系
  • 物理电气协议标准:RS485 RS232
  • llama.cpp docker 镜像pull国内加速地址
  • 餐饮供应链:餐饮的“后端定海神针”
  • 《JavaScript不可变数据实践:Object.freeze与Proxy的实现逻辑、性能博弈及场景选型》
  • 详细讲解Java中的反射和经典面试题(保姆级别)
  • 【STM32入门教程】新建工程
  • 如何高效撰写AI领域学术论文——学习笔记
  • 【动手学深度学习】6.2. 图像卷积
  • DeepSeek-V3.1震撼升级:推理与Agent双突破
  • 20250820:一波三折!老设备国标接入 EasyGBS 的 “排雷” 记:从无流到花屏,换个协议全搞定
  • 8.21学习总结
  • 08.20CSP模拟赛总结
  • 中文房间悖论:人工智能理解力的哲学拷问
  • 【网络运维】Shell:变量进阶知识
  • MTK Linux DRM分析(十)- KMS drm_connector.c
  • Pandas 数据组合与缺失值处理最新版本
  • 如何自定义一个SpringBoot Starter
  • Document Solutions .NET Bundle 8.2.0