Т.к. примера нет и как там реализовано вытягивание данных неизвестно - то Вот ссылка: ВПР с поиском по нескольким листам Там описание принципа и примеры в виде файлов. И в одном из них приложена формула, которая как раз вытягивает имя листа, из которого получены данные.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Вопрос: почему здесь - Date.AddDays(DateTime.LocalNow(),-7) - указано "-7"? Это же отнять неделю, а не прибавить. Такой порядок дат точно в этом сервисе поддерживается?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
art_TD написал: можно ли в Вашем коде сделать так, чтобы путь до файлов изображений был тот же, что и путь этой книги Excel? Что-то вроде folderPath = ThisWorkbook.path & "\"
Вы комментарии-то вообще не читали что ли? Там вроде прям открытым текстом написано, что надо сделать, если не надо использовать диалог выбора файлов:
Код
' если путь надо указать статичный - вместо диалога прописываем одну строку
' sPicsPath = "C:\images\"
убираете блок выбора папки(у которого тоже есть комментарий: 'выбираем путь к папке с картинками). И оставляете только эту строку:
Код
sPicsPath = ThisWorkbook.Path
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Функция И(равно как и ИЛИ) изначально разработана таким образом, что может работать с диапазонами. Т.е. в данном случае надо заменять математическими эквивалентами И и ИЛИ, которые предназначены для работы внутри формул массива. Т.е. знаки + и *. Типа того:
написал: Там, к сожалению, не рассматривается вторая часть задачи
так добавьте - это одна строка кода. После строки:
Код
oShp.Name = sSpName
допишите:
Код
oShp.OnAction = "ClickResizeImage"
и поместите в книгу соответствующие коды:
Код
Sub PlaceImage(Cel As Range, SHP As Shape) Dim W As Double, H As Double, L As Double, T As Double
Cel.Select: W = Cel.Width: H = Cel.Height: L = Cel.Left: T = Cel.Top
With SHP
.LockAspectRatio = msoTrue
.Width = W
If .Height > H Then .Height = H
.Left = L + (W - SHP.Width) / 2
.Top = T + (H - SHP.Height) / 2
End With
End Sub
Sub ClickResizeImage()
Dim SHP As Shape, Cel As Range, W As Double, H As Double, L As Double, T As Double
Set SHP = ActiveSheet.Shapes(Application.Caller)
Set Cel = SHP.TopLeftCell
Cel.Select: W = Cel.Width: H = Cel.Height: L = Cel.Left: T = Cel.Top
If SHP.Width < W Or SHP.Height < H Then SHP.Width = W * 5 Else Call PlaceImage(Cel, SHP)
End Sub
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Имеет смысл проверить все последние обновления. Возможно, была недоработка в части отслеживания цепочек вычислений. Если СЕГОДНЯ ожидаемо для всех вносит изменения в файл, то ссылка на ячейку с этой функций может быть игнорирована вследствие ошибки разрабочиков. Это как вариант, раз макросов и всего прочего нет и файл при этом действительно не сохраняется. Ну и проверить установлен ли для файла автопересчет формул. Но это уже в качестве бреда больше.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Попробуйте использовать Расширенный фильтр. Про него где-то в Приемах есть статья. К сожалению сейчас искать и дать ссылку прямо на статью нет возможности - поэтому попробуйте самостоятельно, там вроде не сложно найти.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Такого нет точно. Но Вы можете сделать иначе: раскрыли фильтр -нажали галочку "Выделить все" два раза(сначала все отмечается, затем все галочки снимаются) и делайте выбор заново только нужных позиций.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Света Демкина написал: Как с листа удалить знаю, а вот с книги
Так же, только добавив цикл по всем листам:
Код
Sub DelFromWb()
Dim ws As Worksheet
for each ws in activeworkbook.Worksheets
'здесь код для удаления всех объектов с листа, который знаю :)
'или такой:
On Error resume next
ws.drawingobjects.delete
On Error goto 0
next
End Sub
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
для начала не мешает определить - что есть пустые строки? Ибо сейчас проверка идет не всей строки, а только ячеек столбца FJ. И сейчас код работает исправно - скрывает все, что ниже 37 строки, если в ячейках столбца FJ пусто.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
написал: Опять это мутное ActiveWorkbook и ThisWorkbook
а что здесь мутного? ActiveWorkbook - книга, которая отображена на экране на момент выполнения кода. ThisWorkbook - всегда та книга, в которой записан выполняемый в данный момент код. И это может быть как одна и та же книга, так и разные - зависит от задач и от того, что требуется от кода.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
А почему бы средствами PowerQuery не разбить результат на несколько ячеек по кол-ву символов? А потом уже можно объединять это некими кодами. Ну а если хочется исключительно через PowerQuery, то технически вроде бы нет возможности выгружать во внешний файл результат запроса. Только те варианты, которые предлагаются в самом PowerQuery.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
igorbych написал: Но шаг в сторону и уже чтото мешает
да там много чего мешает. И неразрывный пробел вместо обычного, и "мая" вместо "май". Предположу, что еще и другие варианты могут быть. Поэтому и так важен сразу файл пример, а не одна строка. По сути, нечто такое должно сработать:
Sanja, бинарное отрицание в данной конструкции совсем лишнее, т.к. уже есть сложение двух величин и в любом случае будет попытка преобразовать типы. Бинарное отрицание нужно в случае, когда с результатом функции не производится доп.математические действия. Это я так, занудствую чутка Ну и в целом можно вообще без всяких ПСТР и прочего:
Код
=ЗНАЧЕН(ПОДСТАВИТЬ(A1;".,";""))
или
Код
=--ПОДСТАВИТЬ(A1;".,";"")
но я бы, конечно, посмотрел бы на реальные данные сначала.
? А строка(т.е. текст) не может участвовать в математических операциях и к ней нельзя применить различные числовые форматы ячеек. Т.е. по сути сначала надо все эти чудо-строки преобразовывать в реальную дату-время и только потом уже прибавлять, вычитать, форматы менять...
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Ну и опять же: уникальные, это те, которые НЕ ПОВТОРЯЮТСЯ. Т.е. Вам надо из всех символов в ячейке убрать все повторяющиеся и оставить так, чтобы каждый символ был записан по одному разу? Или именно те символы, которые не повторяются? Например, в слове "шалаш" два символа повторяются. Если выбирать только НЕ ПОВТОРЯЮЩИЕСЯ, то это будет одна буква - "л". Т.к. только она не повторяется. Если же надо отсечь все повторы и оставить только по одному уникальному символу - это будет "шал". Вам как надо?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Краткость явно не сестра Ваших талантов Различаются относительно чего? Других символов в этой же ячейке? Или в другой? Или в эталонном списке? Или нужно просто кол-во уникальных символов? Это все разные задачи, которые по сути подходят под описанную Вами. Поэтому нужна конкретика и желательно с примером в файле Excel.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Бутус написал: при создании на новом листе ссылки на ячейку с гиперссылкой, там не открывается текст документа
и не будет. Это же просто ссылка на ячейку. Гиперссылка это отдельный объект. И чтобы перенести гиперссылку в ячейку, просто указав ссылку на другую ячейку с гиперссылкой - надо применять VBA. Стандартными функциями это вряд ли получится. Но как уже сказали - надо видеть файл. Вдруг у Вас там адреса конкретно прописаны - тогда может помочь просто функция ГИПЕРССЫЛКА.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
bedvit написал: почему должно вернутся False (потому что "-" не в начале и не в конце charlist)
почему же не в начале и не в конце? Он как раз либо в начале, либо в конце Шаблон "[1-2-3]". Разбирается скорее всего по частям. Первая часть - диапазон от 1 до 2: "[1-2]". Вторая часть - дефис и число 3, которые считываются уже по отдельности, т.к. цифра "2" уже занята диапазоном "1-2": "[-3]". Следуя этой логике - дефис-таки в начале. Но если вдруг, Like начинает разбор шаблона справа налево - то будет обратная ситуация, которую, полагаю, сами достроите("2-3" и "1" и "-").
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Не пробовали сделать так: при предварительном осмотре в Параметры страницы выбираете "Настраиваемые поля". В появившемся окне в блоке "центрировать на странице" ставите две галочки: "горизонтально" и "вертикально".
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...