
Option Explicit
Sub abc()
Dim a, i, j, s, d, n, p
s = GetFruitName
a = [a1].CurrentRegion.Offset(1).Resize(, 1).Value
ReDim b(UBound(a), 100)
Set d = CreateObject("scripting.dictionary")
For i = 1 To UBound(a) - 1
Do
For j = 0 To UBound(s)
p = InStr(a(i, 1), s(j))
If p Then
If Not d.exists(s(j)) Then n = n + 1: d(s(j)) = n: b(0, n) = s(j)
b(i, d(s(j))) = b(i, d(s(j))) + 1
b(i, 0) = b(i, 0) + 1
a(i, 1) = Left(a(i, 1), p - 1) & Mid(a(i, 1), p + Len(s(j)))
Exit For
End If
Next
Loop Until p = 0
Next
For i = 1 To UBound(b): b(i, n + 1) = a(i, 1): Next
b(0, 0) = "未知水果名": b(0, n + 1) = "未知水果名"
[c1].Resize(UBound(b) + 1, n + 2) = b
End Sub
Function GetFruitName()
Dim i, j, a, t, d
a = "苹果;香蕉;橙子;橙;葡萄;草莓;菠萝;桃子;桃;李子;梨;西瓜;"
a = a & "芒果;猕猴桃;石榴;柚子;柚;柠檬;火龙果;百香果;哈密瓜;"
a = a & "蓝莓;树莓;黑加仑;柿子;龙眼;荔枝;椰子;樱桃;枣子;"
a = a & "无花果;番石榴;木瓜;提子;百香果;牛油果;莲雾;青枣;"
a = a & "山竹;杨桃;红毛丹;释迦果;人心果;蛋黄果;西梅;金桔;"
a = a & "黄皮果;雪莲果;百香果;诺丽果;仙人掌果;柿子椒;圣女果;"
a = a & "八月瓜;莲子;蛇皮果;黄皮果;木瓜梅;西番莲;蒲桃;释迦果;"
a = a & "凤梨释迦;凤梨;番荔枝;百香果;阿比西亚果;刺角瓜;人心果;"
a = a & "仙人掌果;龙宫果;佛头果;木鳖果;仙人掌果;嘉宝果;栗子;"
a = a & "千年健;诺丽果;非洲角瓜;酸角;猴面包果;西非荔枝果;"
a = a & "面包果;神秘果;红毛丹;释迦果;人心果;蛋黄果;西梅;香蕉苹果;"
a = a & "金桔;黄皮果;雪莲果;山竹;杨桃;红毛丹;释迦果;人心果;"
a = a & "蛋黄果;西梅;金桔;黄皮果;雪莲果;百香果;诺丽果;仙人掌果;"
a = a & "柿子椒;圣女果;八月瓜;牛奶果;沙棘;红橙;青柠檬;夏蜜桔;"
a = a & "金桔;蜜桔;龙眼;水蜜桃;李子;杨梅;红提;香蕉;椰子;菠萝;"
a = a & "西瓜;枇杷;柠檬;梨子;柿子;菠萝蜜;芒果;榴莲;石榴;山楂;"
a = a & "杏子;猕猴桃;龙眼;甘蔗;甜瓜;柚子;枣子;脐橙;柑橘;牛奶蕉;"
a = a & "莲雾;油桃;樱桃;哈密瓜;香瓜;白兰瓜;刺角瓜;金橘;橘子;蜜桔;"
a = a & "砂糖橘;柚子;葡萄柚;香橼;佛手;柠檬;百香果;杨桃;芒果;"
a = a & "李子;柿子;桃;杏;海棠果;苹果;沙果;海棠;野樱莓;欧楂;"
a = a & "核桃;梨;柿子;木瓜;芭蕉;番石榴;鳄梨;酸橙;葡萄柚;桑葚;"
a = a & "无花果;石榴;番木瓜;西梅;李子;猕猴桃;树莓;蓝莓;黑莓;"
a = a & "覆盆子;蛇莓;杨桃;椰子;金橘;柑橘;菠萝;草莓;柚子;橙子;橙"
a = a & "苹果;柠檬;葡萄;香蕉;芒果;木瓜;西番莲;番石榴;榴莲;百香果;"
a = a & "火龙果;雪莲果;牛油果;番荔枝;人心果;仙人掌果;红毛丹;"
a = a & "莲雾;柿子椒;圣女果;山竹;百香果;诺丽果;仙人掌果;八月瓜;"
a = a & "神秘果;莲雾;西非荔枝果;荔枝;面包果;红毛丹;人心果;蛋黄果;"
a = a & "西梅;金桔;黄皮果;雪莲果;凤梨释迦;西梅;牛奶果;沙棘;"
a = a & "红橙;青柠檬;夏蜜桔;金桔;蜜桔;龙眼;水蜜桃;李子;杨梅;"
a = a & "红提;香蕉;椰子;菠萝;西瓜;枇杷;柠檬;梨子;柿子;菠萝蜜;"
a = a & "芒果;榴莲;石榴;山楂;杏子;杏;猕猴桃;龙眼;甘蔗;甜瓜;"
a = a & "枣子;脐橙;柑橘;杨桃;芒果;李子;柿子;桃;杏;海棠果;苹果;"
a = a & "沙果;海棠;野樱莓;欧楂;核桃;梨;柿子;木瓜;芭蕉;番石榴;"
a = a & "鳄梨;酸橙;葡萄柚;桑葚;无花果;石榴;番木瓜;西梅;"
a = a & "李子;猕猴桃;树莓;蓝莓;黑莓;覆盆子;蛇莓;柚子;西柚;柚"
a = Split(a, ";")
Set d = CreateObject("scripting.dictionary")
For i = 0 To UBound(a)
d(Replace(a(i), Space(1), vbNullString)) = 1
Next
a = d.keys
For i = 0 To UBound(a) - 1
For j = i + 1 To UBound(a)
If Len(a(i)) < Len(a(j)) Then
t = a(i): a(i) = a(j): a(j) = t
End If
Next
Next
GetFruitName = a
End Function