Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Подменить числа в тектово-числовых строках на VBA
 
Здравствуйте. Помоги написать нижеописанный макрос.

Во всех строках в столбце A, которые одновременно 1) содержат текст " ms " И 2) содержат число >1200 делаем:
заменяем указанно в такой строке число на рандом ОТ [это же число/2] ДО [это же число*2].

Пример данных которые нужно обработать (есть сейчас) прикрепил.
Изменено: mr667 - 1 Июн 2018 23:51:43
VBA: не конкретное, а динамическое имя файла
 
govorun, ваш способ полностью корректно работает, если заменить ThisWorkbook.Name (где макрос) на ActiveWorkbook.Name (который открыли, переходим на вкладку).
Изменено: mr667 - 1 Апр 2018 18:54:47
VBA: не конкретное, а динамическое имя файла
 
Sanja, всё, полностью корректно сработало, в т.ч. в рамках пакетной обработки, после замены ThisWorkbook.Worksheets(, на Sheets(.

govorun, в вашем варианте тоже если книга расположения макроса и та в которую нужно вставлять разные - то не срабатывает.
Изменено: mr667 - 1 Апр 2018 18:38:18
VBA: не конкретное, а динамическое имя файла
 
Sanja, помогло, но:
1. Только если макрос находится в Pervaya-Kniga.xlsx. Этот пункт не ключевой, а важен следующий.
2. Я хотел использовать в рамках пакетной обработки (её код верный, много раз пользовался). Но появляется debug и выделяет жёлтым полностью ваш код:
Код
Sub ПОбработка()
Dim sFolder As String, sFiles As String
'диалог запроса выбора папки с файлами
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show = False Then Exit Sub
sFolder = .SelectedItems(1)
End With
sFolder = sFolder & IIf(Right(sFolder, 1) = Application.PathSeparator, "", Application.PathSeparator)
'отключаем обновление экрана, чтобы наши действия не мелькали
Application.ScreenUpdating = False
sFiles = Dir(sFolder & "*.xls*")
Do While sFiles <> ""
'открываем книгу
Workbooks.Open sFolder & sFiles
'действия с файлом
 
 
 Workbooks("Vtoraya-Kniga.xlsm").ActiveSheet.Columns("U:IZ").Copy _
    ThisWorkbook.Worksheets("Vkladka").Columns("U:U")

 

'Закрываем книгу с сохранением изменений
ActiveWorkbook.Close True 'если поставить False - книга будет закрыта без сохранения
sFiles = Dir
Loop
'возвращаем ранее отключенное обновление экрана
Application.ScreenUpdating = True
PushButton = MsgBox("Проверить по датам изменения на пропуски.", vbInformation) = vbYes
End Sub
Изменено: mr667 - 1 Апр 2018 17:49:02
VBA: не конкретное, а динамическое имя файла
 
Sanja, да, точно открыта, и в имени книги ошибки нет то же.
Изменено: mr667 - 1 Апр 2018 16:48:47
VBA: не конкретное, а динамическое имя файла
 
govorun, снова пишет sub or function not defined выделяя Workbook.
VBA: не конкретное, а динамическое имя файла
 
Sanja, пишет sub or function not defined выделяя Workbook.
Изменено: mr667 - 1 Апр 2018 16:32:13
VBA: не конкретное, а динамическое имя файла
 
Здравствуйте.

Вот макроc записанный средствами Excel.
Как сделать что бы копирование происходило не именно в Pervaya-Kniga.xlsx, а в ту книга, которая изначально была активна, в которой мы первым действием переходили на вкладку? Это должны по итогу получатся разные книги в разных ситуациях, а макрос один.
Код
Sub Makros1()
    Sheets("Vkladka").Select
    Windows("Vtoraya-Kniga.xlsm").Activate
    Columns("U:IZ").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Pervaya-Kniga.xlsx").Activate
    Columns("U:U").Select
    ActiveSheet.Paste
End Sub
Изменено: mr667 - 1 Апр 2018 21:18:26
Макрос удаляющий первые строки так, что бы по итогу получалось определённое количество строк
 
Казанский, ух ты как лаконично. Спасибо!
Макрос удаляющий первые строки так, что бы по итогу получалось определённое количество строк
 
Прикрепил пример. Там должен выполнятся второй сценарий - на выходе 301 значение в столбце A.
Изменено: mr667 - 29 Мар 2018 13:29:47
Макрос удаляющий первые строки так, что бы по итогу получалось определённое количество строк
 
Здравствуйте. Помогите написать макрос, который бы действовал в соответствии с нижеизложенными условиями.

Если количество значений в столбце A:
<=301, то выводим сообщение "Готово",
>301, то удаляем столько первых строк (без заголовка), что бы значений в столбце A оставалось 301, выводим сообщение "Готово". Предварительно перед удалением заменив с формул на значения (копировать - вставить как значения) те 30 строк которые после удаления окажутся первыми после заголовка.
Изменено: mr667 - 29 Мар 2018 13:27:53
Динамическое точное заимствование стиля другой ячейки.
 
Ладно друзья. Спасибо всем кто попытался помочь.
Я искал простое решение, идеально решающее проблему. Видимо в excel его попросту нет.
Для меня вопрос закрыт.
Изменено: mr667 - 19 Фев 2017 13:02:02
Динамическое точное заимствование стиля другой ячейки.
 
Цитата
Vik_tor написал:
для частного случая из 2-х ячеек, можно построить другими условиями, (только цвет подобрать)
Да, это похоже из простых единственный способ, но не идеальный, нужно цвета подбирать.
Динамическое точное заимствование стиля другой ячейки.
 
Люди уже конкретные решения скидывают и делают попытки. А вы всё не можете понять где там уф  :D :D. Прошу вас не продолжать, толку ноль будет.
Изменено: mr667 - 20 Фев 2017 02:35:05
Динамическое точное заимствование стиля другой ячейки.
 
Цитата
Z написал:  "взять на слабо"...
Это способ понять друг друга. как можно сравнить "взять на слабо" и просьбу сделать 5 кликов мыши. лол
Динамическое точное заимствование стиля другой ячейки.
 
Цитата
Юрий М написал: Тогда объясните, почему в Вашем файле нельзя распространить условное форматирование ячейки А1 на А2?
Я распространил, всё неверно, посмотрите:
Изменено: mr667 - 20 Фев 2017 02:34:19
Динамическое точное заимствование стиля другой ячейки.
 
Потому что в результате цвет A2 будет формироваться на основе значения A2. А мне нужно на основе A1.
Предполагается что значение A1 будет постоянно меняться, а A2 нет и 2 ячейки должны принимать одинаковый вид. Распространением эта задача не решается (вид получится разный).
Динамическое точное заимствование стиля другой ячейки.
 
Цитата
Юрий М написал: Вы считаете, что УФ ячейки можно применить только по значению в ней?
Я так не считаю. Я считаю что УФ функция "Форматировать все ячейки на основе их значений", может применяться только по значению в ячейке которой применяется (что и указано в названии функции). Остальные способы условного форматирования, не подходят, потому что ими нельзя или чрезвычайно трудно эмитировать  то, что необходимо.
Задача такая, но выразить те условия которые в A1 другими способами УФ очень трудно, а в точности наверное чуть ли невозможно.
Если вы не согласны со мной, то пожалуйста, продемонстрируйте в примере, который я скинул.
Изменено: mr667 - 20 Фев 2017 02:33:43
Динамическое точное заимствование стиля другой ячейки.
 
Цитата
mr667 написал:
по всем остальным условиям тоже самое
здесь условиям уф имелось ввиду, а не моим. У меня оно одно и твержу уже его много раз (разными способами что бы понятнее было) и в примере тоже самое.
Ну не уже ли не понятно что я пишу? жесть...
Изменено: mr667 - 19 Фев 2017 08:58:20
Динамическое точное заимствование стиля другой ячейки.
 
Цитата
Использовать формулу что бы получить статистический стиль (по всем остальным условиям тоже самое), а не постоянно меняющийся за оригиналом. Покажите в файле который я скинул...
Это я продолжил его сообщение, показывая что это  мне не подходит!!
Изменено: mr667 - 20 Фев 2017 02:32:58
Динамическое точное заимствование стиля другой ячейки.
 
Цитата
vikttur написал: Там есть и другие условия. Например, использовать формулу
Использовать формулу что бы получить статистический стиль (по всем остальным условиям тоже самое), а не постоянно меняющийся за оригиналом. Покажите в файле который я скинул...
Изменено: mr667 - 20 Фев 2017 02:31:43
Динамическое точное заимствование стиля другой ячейки.
 
Цитата
_Igor_61 написал: ТО: условным форматированием.
да вот. там написано.
Изменено: mr667 - 20 Фев 2017 02:32:04
Динамическое точное заимствование стиля другой ячейки.
 
Цитата
Юрий М написал: Распространить УФ и на "вторую" ячейку.
Как его распространить? Ведь функция называется "Форматировать все ячейки на основе их значений". И выбрать другие нельзя.
Динамическое точное заимствование стиля другой ячейки.
 
Есть 2 ячейки. Одна постоянно изменяет свой стиль по трёхцветной шкале цветов  в зависимости от своего значения.

Как сделать что бы вторая ячейка постоянно заимствовала этот стиль себе?
Или по другому, как сделать форматирования по трёхцветной шкале на основании значения в другой ячейке?
Изменено: mr667 - 18 Фев 2017 20:47:41
Страницы: 1
Наверх