提取string中最后一个数字前面的所有文本

我需要删除我的string中最后一个数字左边的所有文本。 奇怪的是,我似乎可以find一切,但是这个。 这里是我需要的例子。

资源:

  1. OsteoActiv 150胶囊
  2. 维生素B6作为吡哆醛-5-磷酸盐33.8 mg 60素食主义者胶囊
  3. 酪氨酸500毫克60素食胶囊
  4. 绿茶-70 500毫克EGCG 350毫克60素食胶囊
  5. 欧米茄至尊90胶囊

需要的结果:

  1. 150胶囊
  2. 60粒素食胶囊
  3. 60粒素食胶囊
  4. 60粒素食胶囊
  5. 90粒胶囊

Excel的提取物-文字-左的决赛用户号码中,String.jpg

UDF(aka 用户定义函数 )最适合用于自定义parsing不确定长度和结构的string。 将以下内容粘贴到VBE中的模块代码表中。

Function udf_Last_Number_and_Unit(rng As Range) Dim tmp As String, v As Long, w As Long, vBITs As Variant vBITs = Split(rng.Value2, Chr(32)) tmp = Join(vBITs, Chr(32)) For v = LBound(vBITs) To UBound(vBITs) If IsNumeric(vBITs(v)) Then tmp = vbNullString For w = v To UBound(vBITs) tmp = Join(Array(tmp, vBITs(w)), Chr(32)) Next w End If Next v udf_Last_Number_and_Unit = Trim(tmp) End Function 

像任何本地工作表函数一样使用。

udf_last_number_and_unit