有时候我们会遇到需要用vba代码将指定的字符串重复N次的情况。
比如字符串”ab”,重复4次,生成”abababab”。
如果是在excel工作表中,我们可以很轻松的用Rept函数来实现。
=REPT("ab",4)
但是vba中没有内置函数可以直接实现将指定的字符串重复N次。
我们可以直接调用Rept工作表函数来实现,代码如下:
Sub 水星Excel() Dim s1 As String s1 = "ab" s2 = Excel.Application.WorksheetFunction.Rept("ab", 4) MsgBox s2 End Sub
但是如果是在word vba或者ppt vba中,由于没有这个工作表函数,只能使用循环的方式创建一个自定义函数。
以下自定义函数可以将任意字符串指定重复N次。
Function StrRept(ByVal strOrigin As String, ByVal N As Long, Optional delimiter = "") '将指定字符串重复生成N次的自定义函数, 'strOrigin参数表示原始字符串,N参数表示要重复的次数,delimiter参数表示指定的分隔符,默认为不带分隔符 Dim arr() For i = 0 To N - 1 ReDim Preserve arr(i) arr(i) = strOrigin Next i StrRept = Join(arr, delimiter) End Function
这样,下次再word vba或者ppt vba中就可以直接这样调用:
Function StrRept(ByVal strOrigin As String, ByVal N As Long, Optional delimiter = "") '将指定字符串重复生成N次的自定义函数, 'strOrigin参数表示原始字符串,N参数表示要重复的次数,delimiter参数表示指定的分隔符,默认为不带分隔符 Dim arr() For i = 0 To N - 1 ReDim Preserve arr(i) arr(i) = strOrigin Next i StrRept = Join(arr, delimiter) End Function Sub 水星excel() Dim str1 As String str1 = "ab" MsgBox StrRept(str1, 4) End Sub
发表评论