(已解决)在文本string中/中的数字相乘。 +综述

概述:

A1 = Dog_dkp_1,Cat_dkp_50,Mouse_dkp_20

= Nmult(A1,3)

将单元格A1中的数字乘以3.然后得到:

Dog_dkp_3,Cat_dkp_150,Mouse_dkp_60

我可以使用可选的综合参数。

= Nmult(A1,1.1,0)

= Nmult(目标,乘数,综合点)

结果在:Dog_dkp_2,Cat_dkp_55,Mouse_dkp_22

…它不是我的开始…

函数Nmult(文本为string,乘数为双)

Dim i As Long, char As String, numb As String Application.Volatile True For i = 1 To Len(text) char = Mid(text, i, 1) If char Like "#" Then While char Like "#" numb = numb + char i = i + 1 char = Mid(text, i, 1) Wend char = Str((CLng(numb) * multiplier)) + char numb = Empty End If Nmult = Nmult + char Next i 

结束function

只需要几个小小的改变就可以得到你想要的东西。 我在函数定义中添加了一个选项variables,在您的计算中添加了RoundUp函数。

 Function Nmult(text As String, multiplier As Double, Optional roundValue As Double) Dim i As Long, char As String, numb As String Application.Volatile True For i = 1 To Len(text) char = Mid(text, i, 1) If char Like "#" Then While char Like "#" numb = numb + char i = i + 1 char = Mid(text, i, 1) Wend char = Str(Application.RoundUp((CLng(numb) * multiplier), roundValue)) + char numb = Empty End If Nmult = Nmult + char Next i End Function 

testing:(列B显示了相邻列A单元格中的公式

在这里输入图像说明