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:
|
Вариант точный
'написано Нейл Fleming
Sub MineText ()
Тусклый wb как Workbook, wsRaw как рабочий лист, wsResults как рабочий лист, wsIgnore как рабочий лист
Тусклое rSource как ряд, rRow как ряд, rResults как ряд, rMatch как ряд
Тусклое allText как шнур
Тусклое излишнее как шнур
Тусклые слова () как шнур
Тусклое aWord как интежер, aRow как интежер, рядом как интежер, maxCol как интежер
На errortrap ошибки переход
'рабочий лист установки
Установите wb = ActiveWorkbook
Установите wsRaw = wb. Листы («сырцово»)
Установите wsResults = wb. Листы («результаты»)
Установите wsIgnore = wb. Листы («проигнорируйте»)
'установите rSource к non-пустым рядкам
Установите rSource = ряд (wsRaw.Range («A5»), wsRaw.Range («a5»). Конец (xlDown))
allText = ""
Для каждого rRow в rSource.Rows
allText = allText & ««& rRow.Cells (1, 1).Value
Затем
'добавьте отставая космос:
allText = allText & ««
'uppercase:
allText = UCase (allText)
'примите вне пунктуацию:
allText = заменяет ть (allText, «,», «")
allText = заменяет ть (allText, «; », «")
allText = заменяет ть (allText, «. », «")
allText = заменяет ть (allText, «-», «")
'извлекайте проигнорированные слова, using список от «проигнорируйте» рабочий лист
Для aWord = 2 к wsIgnore.Cells (2, 1).End (xlDown). Рядок
излишне = wsIgnore.Cells (aWord, 1).Value
Пока InStr (allText, ««& излишне &» ") > 0
allText = заменяет ть (allText, ««& излишне &» «,» ")
Wend
Затем
'примите вне двойные космосы:
Пока InStr (allText, « ") > 0
allText = заменяет ть (allText, « «,» ")
Wend
'извлекайте космосы водя и отставая:
allText = уравновешивание (allText)
'новообращенный AllText к блоку слов:
Слова = разделили (allText, «")
'ПОЛОЖЕНИЕ ВНЕ ПРИВОДИТ К:
'пустые результаты:
С wsResults
Application.ScreenUpdating = ложно
. Cells.ClearContents
. Cells.ClearFormats
. Ряд («a1», «dd1000»). Interior.Color = RGB (255, 255, 255)
. Активируйте
. Клетки (1, 1) = «отсчет»
. Клетки (1, 2) = «слово»
'введите уникально результаты слова в лист результатов:
aRow = 2
maxCol = 1
Для aWord = 0 к UBound (словам)
'redefine ряд результатов:
Установите rResults =. Ряд (wsResults.Range («b2»). Ряд («b2»). Конец (xlDown))
Установите rMatch = rResults.Find (слова (aWord))
'если слово в списке, отсчете инкремента:, то
Если не rMatch ничего после этого
rMatch.Offset (0, -1) = rMatch.Offset (0, -1) + 1
'в противном случае добавьте к списку:
Еще
Установите rMatch = wsResults.Cells (aRow, 2)
rMatch.Value = слова (aWord)
rMatch.Offset (0, -1). Значение = 1
aRow = aRow + 1
Закончитесь если
'расмотрите близрасположенные слова, возникновения отсчета и добавьте к праву главным образом слова:
'количество расмотренных слов установлен на «игнорирует» лист в «ptrMaxWords» названных клеткой:
Для рядом = 1 к ряду («ptrMaxWords»). Значение
'идите ОН назад:
Если aWord - близрасположенные слова AddNearby >= 0 после этого (aWord - рядом), то. Клетки (rMatch.Row, 1), maxCol
'идите препровождает:
Если aWord + рядом <> maxCol = rcol maxCol после этого. Колонка + 1 другое maxCol = maxCol
Подводная лодка конца
Sub CustomSort (aRange как ряд)
'пары видов клеток вдоль рядка основанного на значении первой клетки в парах:
Тусклое StartCol как интежер, swapCol как интежер, swapValue как интежер
Тусклое swapText как шнур
StartCol = 2
Сделайте
swapCol = StartCol + 2
Сделайте
Если aRange.Cells (1, swapCol) > aRange.Cells (1, StartCol) после этого
'обмените клетки и следующую клетку вперед (содержащ слово) друг с другом:
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
Закончитесь если
swapCol = swapCol + 2
Не закрепить петлеть до aRange.Cells (1, swapCol) = ""
StartCol = StartCol + 2
Не закрепить петлеть до aRange.Cells (1, StartCol) = ""
Закончите подводную лодку
|