【问题标题】:Remove text from a String Covert to Integer从字符串中删除文本转换为整数
【发布时间】:2020-06-26 14:04:19
【问题描述】:

如何从字符串“MIC-CT-001”中删除文本,并将数字转换为整数,在其中我可以将数字加 1,转换回字符串并推回电子表格?

Public Function UniqueID()

Call SetVariables

DIM LastID as String
DIM LastNumber as Integer
DIM NextNumber as Integer
DIM NextID as Integer

LastID = xTracker.Range("B" & tRow).Value

'==========================
'Remove text from string
'==========================

NextNumber = LastNumber+1
NextID = ("MIC-CT-" & NextNumber)

End Function

不幸的是,在不从字符串中删除文本并将其转换为整数的情况下,这是我所能做到的。

【问题讨论】:

  • Split 在这里应该会有所帮助。
  • 必须承认,在编码方面我是个新手。我以前从未遇到过溢出函数。
  • 尝试使用 LastNo = Split(LastID,"MIC-CT-",1) 其中 LastID 为字符串,LastNo () 为整数。但是想出一个不匹配。如果我尝试 CInt(Split(LastID,"MIC-CT-",1) 也会失败
  • 你的号码总是3位数吗?其余的文字总是“Mic-Ct-”吗?
  • 没有数字增加,文字总是一样的。因此,为什么我要尝试提取数字并转换为整数,将数字加 1 并重新打包。

标签: excel vba string text integer


【解决方案1】:

你基本上想做两件事。

“从字符串中删除文本”:为此使用替换。当您要多次使用“MIC-CT-”时,请考虑为其创建一个新变量。这为您提供了更大的灵活性,一旦您的需求发生变化,您就不必在代码中的任何地方更改此字符串。请记住,以下示例仅在 LastNumber 声明为字符串时才有效。

Dim Mic as String
Mic = "MIC-CT-"

LastNumber = replace(xTracker.Range("B" & tRow).Value, Mic, "")

“将其转换为整数。”您可以使用 Cint(expression) 来实现。

NextNumber=Cint(LastNumber) + 1 'Changes the data type of LastNumber to integer

把这些放在一起,你的脚本应该可以工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-19
    • 1970-01-01
    • 2023-03-22
    相关资源
    最近更新 更多