1 :
2 :
3 :
4 :
5 :
6 :
7 :
8 :
9 :
10 :
11 :
12 :
13 :
14 :
15 :
16 :
17 :
18 :
19 :
20 :
21 :
22 :
23 :
24 :
25 :
26 :
27 :
28 :
29 :
30 :
31 :
32 :
33 :
34 :
35 :
36 :
37 :
38 :
39 :
40 :
41 :
42 :
43 :
44 :
45 :
46 :
47 :
48 :
49 :
50 :
51 :
52 :
53 :
54 :
55 :
56 :
57 :
58 :
59 :
60 :
61 :
62 :
63 :
64 :
65 :
66 :
67 :
68 :
69 :
70 :
71 :
72 :
73 :
74 :
75 :
76 :
77 :
78 :
79 :
80 :
81 :
82 :
83 :
84 :
85 :
86 :
87 :
88 :
89 :
90 :
91 :
92 :
93 :
94 :
95 :
96 :
97 :
98 :
99 :
100 :
101 :
102 :
103 :
104 :
105 :
106 :
107 :
108 :
109 :
110 :
111 :
112 :
113 :
114 :
115 :
116 :
117 :
118 :
119 :
120 :
121 :
122 :
123 :
124 :
125 :
126 :
127 :
128 :
129 :
130 :
131 :
132 :
133 :
134 :
135 :
136 :
137 :
138 :
139 :
140 :
141 :
142 :
143 :
144 :
145 :
146 :
147 :
148 :
149 :
150 :
151 :
152 :
153 :
154 :
155 :
156 :
157 :
158 :
159 :
160 :
161 :
162 :
163 :
164 :
165 :
166 :
167 :
168 :
169 :
170 :
171 :
172 :
173 :
174 :
|
Option explicite
'écrit par Neil Fleming
MineText secondaire ()
Faible wb comme cahier de travail, wsRaw comme feuille de travail, wsResults comme feuille de travail, wsIgnore comme feuille de travail
Faible rSource comme gamme, rRow comme gamme, rResults comme gamme, rMatch comme gamme
Faible allText comme corde
Faible non désiré comme corde
Faibles mots () comme corde
Faible aWord comme nombre entier, aRow comme nombre entier, tout près comme nombre entier, maxCol comme nombre entier
Sur l'errortrap GoTo d'erreur
'feuilles de travail d'installation
Placer wb = ActiveWorkbook
Placer le wsRaw = le wb. Feuilles (« cru »)
Placer les wsResults = le wb. Feuilles (« résultats »)
Placer le wsIgnore = le wb. Feuilles (« ignorer »)
'placer le rSource aux rangées non-blanches
Placer le rSource = la gamme (wsRaw.Range (« A5 »), wsRaw.Range (« a5 »). Extrémité (xlDown))
allText = ""
Pour chaque rRow dans rSource.Rows
allText = allText et « « et rRow.Cells (1, 1).Value
Après
'ajouter l'espace de remorquage :
allText = allText et « «
'haut de casse :
allText = UCase (allText)
'sortir la ponctuation :
l'allText = remplacent (allText, « , », « ")
l'allText = remplacent (allText, « ; », « ")
l'allText = remplacent (allText, « . », « ")
l'allText = remplacent (allText, « - », « ")
'enlever les mots ignorés, using la liste de « ignorent » la feuille de travail
Pour l'aWord = 2 à wsIgnore.Cells (2, 1).End (xlDown). Rangée
non désiré = wsIgnore.Cells (aWord, 1).Value
Tandis qu'InStr (allText, « « et non désiré et » ") > 0
l'allText = remplacent (allText, « « et non désiré et » « , » ")
Wend
Après
'sortir les interlignes :
Tandis qu'InStr (allText, « ") > 0
l'allText = remplacent (allText, « « , » ")
Wend
'enlever les espaces de conduite et de remorquage :
allText = équilibre (allText)
'converti AllText au choix de mots :
Les mots = se sont dédoublés (allText, « ")
'PRÉSENTER LES RÉSULTATS :
'masquer les résultats :
Avec des wsResults
Application.ScreenUpdating = faux
. Cells.ClearContents
. Cells.ClearFormats
. Gamme (« a1 », « dd1000 »). Interior.Color = RVB (255, 255, 255)
. Activer
. Cellules (1, 1) = « compte »
. Cellules (1, 2) = « mot »
'insérer les résultats uniques de mot en feuille de résultats :
= 2 aRow
maxCol = 1
Pour l'aWord = 0 à UBound (mots)
'redéfinir la gamme de résultats :
Placer les rResults =. Gamme (wsResults.Range (« b2 »). Gamme (« b2 »). Extrémité (xlDown))
Placer le rMatch = le rResults.Find (mots (l'aWord))
'si mot dans la liste, compte d'incrément :
Sinon le rMatch n'est rien alors
rMatch.Offset (0, -1) = rMatch.Offset (0, -1) + 1
'ajouter autrement à la liste :
Autrement
Placer le rMatch = le wsResults.Cells (aRow, 2)
rMatch.Value = mots (aWord)
rMatch.Offset (0, -1). Valeur = 1
+ 1 aRow = aRow
Finir si
'examiner les mots voisins, occurrences de compte et ajouter vers la droite du mot principal :
le 'nombre de mots examinés est placé sur « ignorent » la feuille dans des « ptrMaxWords » appelés par cellule :
Pour tout près = 1 à la gamme (« ptrMaxWords »). Valeur
'aller à reculons :
Si aWord - mots voisins d'AddNearby du >= 0 puis (aWord - tout près). Cellules (rMatch.Row, 1), maxCol
'aller expédie :
Si aWord + tout près <> maxCol = rcol de maxCol puis. Colonne + 1 maxCol d'autre = maxCol
Sous-marin d'extrémité
CustomSort secondaire (aRange comme gamme)
'paires de sortes de cellules le long de la rangée basée sur la valeur de la première cellule dans les paires :
Faible StartCol comme nombre entier, swapCol comme nombre entier, swapValue comme nombre entier
Faible swapText comme corde
StartCol = 2
Faire
swapCol = StartCol + 2
Faire
Si aRange.Cells (1, swapCol) > aRange.Cells (1, StartCol) puis
'permuter les cellules et la prochaine cellule le long (contenant le mot) les uns avec les autres :
swapValue = aRange.Cells (1, swapCol)
swapText = aRange.Cells (1, swapCol + 1)
aRange.Cells (1, swapCol) = aRange.Cells (1, StartCol)
aRange.Cells (1, swapCol + 1) = aRange.Cells (1, StartCol + 1)
aRange.Cells (1, StartCol) = swapValue
aRange.Cells (1, StartCol + 1) = swapText
Finir si
swapCol = swapCol + 2
Faire une boucle jusqu'à aRange.Cells (1, swapCol) = le ""
StartCol = StartCol + 2
Faire une boucle jusqu'à aRange.Cells (1, StartCol) = le ""
Finir le sous-marin
|