gpt4 book ai didi

vba - 如何根据VBA中的内容更改单元格

转载 作者:行者123 更新时间:2023-12-02 23:26:39 24 4
gpt4 key购买 nike

我有很多单元格,其中包含一些数字和其他不相关的字符。例如,单元格可能类似于:65f11,345asd

我的目标是删除这些单元格中除数字之外的所有内容,以便我可以使用这些数字进行进一步计算。我在不同的网站上发现了很多类似的问题,但它们非常具体,我仍然不明白如何正确地做到这一点。

所以问题是如何根据内容使用更改单元格甚至一系列单元格?我有一些想法如何使用字符串函数 Replace 来做到这一点。但没什么好看的。

谢谢!

最佳答案

使用正则表达式的另一种方法

添加引用

添加对 Microsoft VBScript 正则表达式 5.5 的引用。见下图

enter image description here

代码:将此粘贴​​到模块中

Option Explicit

Function GetNumbers(rng As Range) As Variant
Dim StrSample As String
Dim myRegExp As RegExp
Dim myMatches As MatchCollection
Dim myMatch As Match

StrSample = rng.Value

Set myRegExp = New RegExp

With myRegExp
.Pattern = "[^0-9]"
.IgnoreCase = True
.Global = True
End With

Set myMatches = myRegExp.Execute(StrSample)

For Each myMatch In myMatches
Debug.Print myMatch.Value
StrSample = Replace(StrSample, myMatch.Value, "")
Next
GetNumbers = StrSample
End Function

屏幕截图:

enter image description here

编辑

这是一个较短的版本,根本不使用循环。

Function GetNumbers(rng As Range) As Variant
Dim myRegExp As RegExp
Set myRegExp = New RegExp
myRegExp.Pattern = "[^0-9]"
myRegExp.Global = True
GetNumbers = myRegExp.Replace(rng.Value, "")
End Function

关于vba - 如何根据VBA中的内容更改单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12528501/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com