带有vba的列中的文本replace文本标记

我正在尝试用列中sorting的某些文本replace文本标记。

在这里输入图像说明

Tried...列中,我使用下面的RandCell函数从一个单元格范围内获得一个随机单元格:

 Function RandCell(Rg As range, columnRange As range, headerRange As range) As Variant 'Dim rplc Dim textRange 'get random cell RandCell = Rg.Cells(Int(Rnd * Rg.Cells.Count) + 1) 'find column to replace ' rplc = RandCell.Find(headerRange) End Function 

Wanted列中,我使用下面的公式substitute下列值: =IF(COUNTIF(E3;"*"&$C$2&"*");SUBSTITUTE(E3;$C$2;C3);SUBSTITUTE(E3;$D$2;D3))

但是,如果我有超过10行这个解决scheme是非常尴尬的。 因此,我想在vba中实现一个函数。

如上所述,我尝试将function实现到RandCell函数中。 不过,我对vba非常新颖,请您提出宝贵意见!

我很感激你的回复!

UPDATE

下面你可以看到一个例子:

在这里输入图像说明

首先,select一个随机文本。 然后,例如在E3中,随机文本中的文本标记将被replace为CD的值。

有了这样的数据:

在这里输入图像说明

在列ABD中 ,下列macros:

 Sub mrquad() Dim L As Long, M As Long, N As Long, Kount As Long Dim v1F As String, v1L As String Kount = 10 With Application.WorksheetFunction L = .CountA(Range("A:A")) - 1 M = .CountA(Range("C:C")) - 1 N = .CountA(Range("D:D")) - 1 For kk = 1 To Kount v1 = Cells(.RandBetween(3, L + 2), "A").Value v1F = Left(v1, Len(v1) - 3) v1L = Right(v1, 3) If v1L = "[1]" Then v2 = Cells(.RandBetween(3, M + 2), "C").Value Else v2 = Cells(.RandBetween(3, N + 2), "d").Value End If Cells(kk, "F").Value = v1F & v2 Next kk End With End Sub 

将从A列中随机抽取10个样本,根据后缀,从列C或列D中选取一个随机replace后缀,并将结果放在列F中

在这里输入图像说明

样本数量由Kountvariables确定。 列CD中的空格是单个空格而不是空格。