Продолжаю придумывать всякие фичи и столкнулся с очередной проблемой:
Есть цикл, который в моей программе делает определённые действия для каждой ячейки, начиная с А2 и заканчивая последней заполненной ячейкой. По выполнении этих действий я решил создавать отдельный файл с выкопировкой результатов (две вкладки копируются в новую книгу), а затем с помощью того же цикла переименовывать эти файлы, также, начиная с ячейки А2 и заканчивая последней заполненной ячейкой.
Однако на этом этапе у меня всплывает ошибка '1004' Application-defined or object-defined error:
Код
NewName = Workbooks("Раскидка по подрядчикам.xlsm").Worksheets("Клейма статистика").Cells(i, 1) & ".xls"
Пробовал немного видоизменять эту строку, разбивая путь к книге и листу, там вылазила другая ошибка.
Не могли бы вы помочь правильно записать этот код, я находил подобный на других форумах и он работал у других людей, но в моём случае, что-то не выходит.
У меня возникла такая проблема. Имеется таблица данных (см. файл Пример2 вкладку "Таблица данных") На вкладке "Выписка из таблицы" вводится искомое значение "Клеймо" а затем с помощью массива ищется уникальный идентификатор "Номер заявки".
Вопрос: Как изменить формулу, чтобы он вытягивал идентификаторы не только, когда имеется полное совпадение клейма (в примере 274P), но и в комбинации клейм (6A95/274P-BBE1).
Здравствуйте люди добрые! Ситуация такая, что я нахожусь на вахте и, к сожалению, меня постоянно дёргают и не дают сосредоточиться. До этого немного программировал на vba, но уже многое забыл.
Суть проблемы: У меня есть небольшой алгоритм повторяющихся действий. Таких действий у меня на данный момент 300 с чем то, постепенно будут увеличиваться. В них меняются только номер строки (Range("A2") на Range("A2"); Range("C2") на Range("C3") ). Пример кода:
Код
Sheets("Клейма статистика").Select
Range("A2").Select ' В следующем действии станет А3
' Этот код не меняется
Selection.Copy
Sheets("Брак по трассовке").Select
Range("G5").Select
ActiveSheet.Paste
ActiveSheet.Calculate
Sheets("Выписка из трассовки").Select
Application.CutCopyMode = False
ActiveSheet.Calculate
' Этот код не меняется
Sheets("Брак по трассовке").Select
ActiveSheet.Calculate
Range("J3:K3").Select
Selection.Copy
Sheets("Клейма статистика").Select
Range("C2").Select ' В следующем действии станет С3
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Чувствую, что решение здесь в небольшом не сложном цикле, которому ещё в школе учат. Не могли бы вы помочь реализовать мою задачу?
У меня такая ситуация: Имеются объединенные ячейки (т.н "блоки") с разной информацией. Эти ячейки переносятся в зону печати и обратно на свое место нажатием кнопок. Записывал действия через макрорекордер путем "Вырезать-Вставить".
Появилась Идея - отображать в отдельном блоке (назвал "Индикатор Формы") какая на данный момент форма с информацией активна.
Т.е то что лежит за пределами зоны печати считается неактивным, а то что перенесено в зону печати - активным.
Первое что пытался реализовать - формула "Епусто", которая срабатывает, если в выбранном диапазоне ячеек/ячейки нету текста. (по задумке формула ЕПУСТО не находит текста в его изначальном месте расположения и выводит надпись " Трубная форма активна")
Но так как мои действия заключаются в "Вырезать-Вставить", в момент переноса блока с информацией "Епусто" переносится вместе с ним (более понятно будет на скриншотах "Пояснение 1" и "Пояснение 2")
Скрытый текст
Приходит ли вам на ум более изящный способ оценить какой сейчас блок с информацией активен применительно к моей ситуации
Здравствуйте! Написал множество условий, в зависимости от которых меняется значение ячейки H20.
Хотел в конце макроса сделать команду, "если не выполняется ни одно из условий, вывести в ячейке надпись ЛОЖЬ"
Предисловие: До этого создавал Module макросы, которые срабатывали при нажатии кнопок. Там, каждое условие If я закрывал End If
Этот макрос ByVal у меня идет через лист 1. В нем при закрытии каждого условия If, как вроде бы того требуют правила написания, вылезает ошибка "End If without block If". Это я к тому, что здесь как то правила работают по другому, и, соответственно команда else тоже.