Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как выделит слова

1.8K
27 октября 2004 года
Syama
97 / / 01.03.2004
Очен нужен помошь ребята.
Вопрос такой:Например у меня есть 10000 слов на Еxcell-e.Слова написаны на столбике A .И среди этих ячейк есть такие которые содержат 2 слова. их примерно 150. Как можно написать код который при нажатии кнопки выделит все те ячейки которые содержат 2 слова и выписать их на другой файл, например под именем Example.xls ?
459
27 октября 2004 года
gacol
273 / / 12.02.2003
Цитата:
Originally posted by Syama
Очен нужен помошь ребята.
Вопрос такой:Например у меня есть 10000 слов на Еxcell-e.Слова написаны на столбике A .И среди этих ячейк есть такие которые содержат 2 слова. их примерно 150. Как можно написать код который при нажатии кнопки выделит все те ячейки которые содержат 2 слова и выписать их на другой файл, например под именем Example.xls ?


Вот твой пример.

275
28 октября 2004 года
pashulka
985 / / 19.09.2004
Уважаемый Gacol.
Ваш пример переносит любой текст, который содержит хотя бы один пробел между словами, т.е. он перенесёт и два слова и двадцать два слова. Да и проверка всех 65536 строк тоже не лучшая идея. Вот исправленный вариант.

Private Sub CommandButton1_Click()
'проверка в столбце "A"

iFirst = 1
iLast = ActiveSheet.Cells(65536, 1).End(xlUp).Row

Set newBook = Workbooks.Add: i = 0

For iRow = iFirst To iLast
iDate = Application.Trim(Cells(iRow, 1).Value)
iSymbol = InStr(iDate, " ")
If iSymbol > 0 Then
If InStr(iSymbol + 1, iDate, " ") = 0 Then
i = i + 1
newBook.Sheets(1).Cells(i, 1) = Cells(iRow, 1).Value
End If
End If
Next

'newBook.SaveAs Filename:="c:\example.xls"
'newBook.Close

End Sub
1.8K
28 октября 2004 года
Syama
97 / / 01.03.2004
Спасибо gacol и pashulka, очень помагли :)
1.8K
28 октября 2004 года
Syama
97 / / 01.03.2004
Ну например надо вырезать и столбик А и столбик B,тогда как быть? На этом коде меняю Row на 2,но ничего не получается.И если можно скажите как зделать вместо Copy --вырезать( Cut).
275
29 октября 2004 года
pashulka
985 / / 19.09.2004
Private Sub CommandButton1_Click()

iFirst = 1
iLast = ActiveSheet.Cells(65536, 1).End(xlUp).Row

Set newBook = Workbooks.Add: i = 0

For Each iCell In Range(Cells(iFirst, 1), Cells(iLast, 2))
iDate = Application.Trim(iCell.Value)
iSymbol = InStr(iDate, " ")
If iSymbol > 0 Then
If InStr(iSymbol + 1, iDate, " ") = 0 Then
i = i + 1
newBook.Sheets(1).Cells(i, 1) = iCell.Value
End If
End If
Next

'newBook.SaveAs Filename:="c:\example.xls"
'newBook.Close

End Sub
--------------------------------------------------
Private Sub CommandButton1_Click()

iFirst = 1
iLast = ActiveSheet.Cells(65536, 1).End(xlUp).Row

Set newBook = Workbooks.Add: i = 0

For iCol = iFirst To 2
For iRow = iFirst To iLast
iDate = Application.Trim(Cells(iRow, iCol).Value)
iSymbol = InStr(iDate, " ")
If iSymbol > 0 Then
If InStr(iSymbol + 1, iDate, " ") = 0 Then
i = i + 1
newBook.Sheets(1).Cells(i, 1) = Cells(iRow, 1).Value
End If
End If
Next
Next

'newBook.SaveAs Filename:="c:\example.xls"
'newBook.Close

End Sub

Порядок поиска нужных слов несколько разный.

P.S.
1) iRow - это строка, а не столбец.
2) Копирование в этом примере не применяется, так как Gacol предложил вариант более правильный, чем Tuco
1.8K
31 октября 2004 года
Syama
97 / / 01.03.2004
Друг если не очень трудно могбы ты написать код делаюший эти(надо там зделать койкакие изминени,но незнаю какие, воше не разбераюсь в VBA, но очень нужен этот код):

Есть слово и ее перевод на отдельном ячейке (например A и B ). Надо вырезать все это и вставить на другой файл. порядок слов должен соблюдатся.
275
31 октября 2004 года
pashulka
985 / / 19.09.2004
Правильно ли я Вас понял :
Имеется столбец A, B ~ 10000 строк
Если в столбце A имеется сочетание из двух слов (), то их необходимо переместить в новый файл и создать новый список + данные из соседней ячейки в столбце B.

Private Sub CommandButton1_Click()
'проверка в столбце "A"

iFirst = 1
iLast = ActiveSheet.Cells(65536, 1).End(xlUp).Row

Set newBook = Workbooks.Add: i = 0

For iRow = iFirst To iLast
iDate = Application.Trim(Cells(iRow, 1).Value)
iSymbol = InStr(iDate, " ")
If iSymbol > 0 Then
If InStr(iSymbol + 1, iDate, " ") = 0 Then
i = i + 1
newBook.Sheets(1).Cells(i, 1) = Cells(iRow, 1).Value
newBook.Sheets(1).Cells(i, 2) = Cells(iRow, 2).Value
End If
End If
Next

'newBook.SaveAs Filename:="c:\example.xls"
'newBook.Close

End Sub

Автор идеи : gacol
Автор исправлений : pashulka
1.8K
02 ноября 2004 года
Syama
97 / / 01.03.2004
Большое спасибо pashulka и gacol-у :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог