Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на Basic / VBA


РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты в разделе

zdwork
Статус: 5-й класс
Рейтинг: 318
∙ повысить рейтинг »
solowey
Статус: Бакалавр
Рейтинг: 217
∙ повысить рейтинг »
Sergey V. Gornostaev
Статус: Специалист
Рейтинг: 120
∙ повысить рейтинг »

∙ Basic

Номер выпуска:1138
Дата выхода:05.10.2019, 06:15
Администратор рассылки:Андреенков Владимир (Академик)
Подписчиков / экспертов:15 / 14
Вопросов / ответов:3 / 7

Консультация # 67767: Доброго дня. Подскажите кодом или ссылкой по VB. Тема такая. Нужно проверить диск на наличие файлов или папок (включая вложенные папки) по маске имени для дальнейшего переименования. Мне нужен код именно поиска по всему диску. Спаибо всем кто чем-нибудь поможет...
Консультация # 42041: Добрый день. Помогите пожалуйста решить небольшую задачу на VB: Есть предложение, нужно в каждом слове поменять местами 1-ю и последнюю букву. Заранее благодарна....
Консультация # 90692: Уважаемые эксперты! Подскажите пожалуйста: есть данные (номера телефонов) в ячейках с A3 по A2000 есть мои данные в ячейках с C3 по С15000 Нужно сравнить все телефоны в столбце А со всеми телефонами в столбце С, и если в ячейке С встречается такой же телефон как и в столбце А, то напротив совпавшего телефона столбца А, в ст...

Консультация # 67767:

Доброго дня. Подскажите кодом или ссылкой по VB. Тема такая. Нужно проверить диск на наличие файлов или папок (включая вложенные папки) по маске имени для дальнейшего переименования. Мне нужен код именно поиска по всему диску. Спаибо всем кто чем-нибудь поможет

Дата отправки: 19.12.2006, 23:29
Вопрос задал: Igigig
Всего ответов: 1
Страница онлайн-консультации »


Консультирует HookEst:

Здравствуйте, Igigig!
Предлагаю Вашему вниманию 2 функции для поиска файлов по маске, одна использует Windows API вторая нет.
т.к. взяты и переделаны из MSDN, кроме списка файлов вычисляют еще и дополнителную информацию.
После доработки, думаю, можно использовать.

Аргументы:
(IN) path As String - место поиска;
(IN) SearchStr As String - маска поиска;
(OUT) Files As String - список найденых файлов и папок с путями, разделенный vbCrLf;
(OUT) FileCount As Integer - количество найденых файлов и папок;
(OUT) DirCount As Integer - количество вложенных папок в которых производился поиск;

Return:
возвращают as Long - суммарный размер всех найденых файлов;

будут вопросы, пишите.

Приложение:

Консультировал: HookEst
Дата отправки: 20.12.2006, 12:24
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 42041:

Добрый день.
Помогите пожалуйста решить небольшую задачу на VB:
Есть предложение, нужно в каждом слове поменять местами 1-ю и последнюю букву.
Заранее благодарна.

Дата отправки: 04.05.2006, 13:18
Вопрос задал: Iris
Всего ответов: 2
Страница онлайн-консультации »


Консультирует Филатов Евгений Геннадьевич:

Здравствуйте, Iris!

Помещаем на форме Form1 объект Text1, куда будем вносить данные.
Под ним Label1, где выводится результат.
В код формы помещаем

Private Sub Form_Load( )
Form1.Label1 = ""
Form1.Text1 = ""
End Sub

Private Sub Text1_Change( )
If Len(Trim(Form1.Text1 ) ) > 1 Then
\'сначала проверяем, чтобы длина строки была не менее 2 символов.
Form1.Label1 = Right(Trim(Form1.Text1 ), 1 ) & Mid(Trim(Form1.Text1 ), 2, Len(Trim(Form1.Text1 ) ) - 2 ) & Left(Trim(Form1.Text1 ), 1 )
\'сначала подсчитывается результат операции, а затем он заносится в переменную.
Else
Form1.Label1 = ""
End If
End Sub

С уважением.

Консультировал: Филатов Евгений Геннадьевич
Дата отправки: 04.05.2006, 13:56
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует PsySex (Профессионал):

Здравствуйте, Iris!
В дополнению к предыдущему ответу.
Предыдущий пример работает только если введено одно слово. Следующий пример обрабатывает все слова в предложении. На форме размещаем Text1,Label1,Command1.
====================================================
Option Explicit
Private Sub Command1_Click()
Dim strText As String
Dim vWord As Variant
Dim vWords As Variant
Dim strWord As String
Dim strNewText As String

strText = Trim(Text1.Text)
strNewText = ""

If Len(strText) > 1 Then
vWords = Split(strText, Chr(32)) \'32-space
For Each vWord In vWords
strWord = CStr(vWord)
strWord = Right(strWord, 1) & Mid(strWord, 2, Len(strWord) - 2) & Left(strWord, 1)
strNewText = strNewText + strWord + Chr(32)
Next
strNewText = RTrim(strNewText) \'обрезка лишнего пробела
End If
Label1.Caption = strNewText
End Sub
====================================================

Консультировал: PsySex (Профессионал)
Дата отправки: 04.05.2006, 14:56
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 90692:

Уважаемые эксперты!
Подскажите пожалуйста:
есть данные (номера телефонов) в ячейках с A3 по A2000
есть мои данные в ячейках с C3 по С15000
Нужно сравнить все телефоны в столбце А со всеми телефонами
в столбце С, и если в ячейке С встречается такой же телефон как и
в столбце А, то напротив совпавшего телефона столбца А, в столбце В
нужно вставить фразу "есть". Так как вручеую считать больше месяца,
то мне сказали написать макрос. Даже ума не приложу что именно писать,
так как у меня слабые знания в VisualBasic. Начал делать, поставил кнопку.
Написал для нее событие, но она делает совсем не то. Помогите, пожалуйста,
иначе придется анализировать вручную, а это адский труд.
С уважением Сергей

Дата отправки: 09.06.2007, 11:42
Вопрос задал: Worsvch
Всего ответов: 4
Страница онлайн-консультации »


Консультирует Felix:

Здравствуйте, Worsvch!

Не нужно использовать ВБА. Используйте функцию ВПР:
1. Отсортируйте столбец А по возрастанию
2. в ячейке В3 пишете формулу: =ЕСЛИ(ВПР(C3;$A$2:$A$2000;1)=C3;"есть";"")
3. копируете формулу вниз до последней заполненной ячейки в столбце С (B1500).

Консультировал: Felix
Дата отправки: 09.06.2007, 12:32
Рейтинг ответа:

НЕ одобряю +1 одобряю!


Консультирует Ualife:

Здравствуйте, Worsvch!
Смотрите приложение, там код макроса.
Если что-то не понятно то пишите на mailto:ua.life@mail.ru

Приложение:

Консультировал: Ualife
Дата отправки: 09.06.2007, 15:01
Рейтинг ответа:

НЕ одобряю +1 одобряю!


Консультирует Тесленко Евгений Алексеевич:

Здравствуйте, Worsvch!
Вариант ответа от Felix, самый подходящий для решения Вашей задачи не прибегая к VBA. Если же Вы решили "познакомиться с VBA", предлагаю маленький кусочек кода с помощью которого так же можно решить Вашу задачу.
Удачи.
Евгений.

Приложение:

Консультировал: Тесленко Евгений Алексеевич
Дата отправки: 09.06.2007, 21:38
Рейтинг ответа:

НЕ одобряю +1 одобряю!


Консультирует Залетин Виталий Викторович (мь:

Здравствуйте, Worsvch!
Sub Sravn()
Dim lA As Long
Dim sh As Object, stat As String

Set sh = Excel.Sheets(1)
sh.Activate

stat = Application.StatusBar
Application.StatusBar = "Подождите, пожалуйста..."
DoEvents

Application.ScreenUpdating = False \'Это для того, чтобы экран до окончания не перерисовывался - так мы экономим некоторое кол-во времени

For lA = 3 To 15000 \'У Вас 15000
If Cells(lA, 1) = Cells(lA, 3) Then \'Смотрим, если А??=С??, то...
Cells(lA, 2) = "--- Есть ---" \'...в В?? пишем слово "--- есть ---"
End If
Next lA

Application.StatusBar = stat
Application.ScreenUpdating = True \'Обновляем экран
Set sh = Nothing
End Sub

Может еще как-то оптимизируете по скорости, но, по-моему, 1,5 секунды удовлетворительный результат (у меня на машине все отрабатывает за 1316 мс.)

Консультировал: Залетин Виталий Викторович (мь
Дата отправки: 10.06.2007, 14:48
Рейтинг ответа:

НЕ одобряю +1 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


В избранное