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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 392 След.
узнать имя активного окна q = ActiveWindow.Name неработает, Добавлено новое окно командой ActiveWindow.NewWindow надо узнать имя
 
Цитата
звездочка яркая написал:
Ну откуда вы это знаете?
А Вы когда вписываете в редакторе ActiveWindow и ставите точку - у Вас список выпадает? Если да - то использовать можно только то, что в этом списке есть. Иначе ошибка будет, т.к. ни одна программа не умеет обращаться к свойствам и методам, которые еще не реализованы :)
Если список не выпадает - идете в редакторе VBA в Tools -Options -вкладка General и ставите галочку напротив Auto List Members. После этого появление списка при проставлении точки будет работать.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Как сохранить/открыть скачанный файл в Internet Explorer, Вы хотите открыть или сохранить файл?
 
Цитата
Anton_Kozlov написал:
легко скачать файл из интернета?
легко это не бывает, т.к. сначала надо выудить корректную ссылку на этот файл. А уж скачать без проблем: Как скачать файл из интернета по ссылке
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Перенос значений всех столбцов в один столбец
 
artelow, Power Query у Вас встроена уже. Все инструменты для работы с ней расположены на вкладке Данные -группа кнопок Получить и Преобразовать
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Поиск по всей книге
 
Так а зачем тогда ДВЕ темы создавать по одному вопросу? Это ведь тоже Ваша тема? - Перенос кнопки с макросом из одного документа в другой

Ну и по сабжу: неужели в интернете нет совсем никаких инструкций о том, как коды из одного файла в другой переносить? Это к слову о "не могу". Вы хоть пытались перенести? Там три движения мышью надо сделать и кнопку скопировать из одного файла в другой. Ну и форму поиска переименовать для начала, хотя бы в UserForm3, чтобы конфликта не было. В общем сложностей по факту нет и для этой задачи даже знать VBA не надо.
Алгоритм:
0. Переходите в проект VBA(Alt+F11). Отображаете окно проектов(Ctrl+R). Находите там открытые файл 1 и 2 (VBAProject(1.xlsm) и VBAProject(2.xlsm)
1. в файле 1 (VBAProject(1.xlsm) находите папку Forms, раскрываете её и переименовываете там форму UserForm1 в ufFind(F4 -двойной щелчок левой кнопкой мыши на UserForm1 -для свойства (Name) вписываете ufFind)
2. После этого выделяете её(форму ufFind) левой кнопкой мыши и удерживая эту левую кнопку мыши переносите в проект файла 2 (он будет там же жирным выделен VBAProject(2.xlsm)
3. Копируете кнопку из файла 1
4. В модуле Module1 у Вас есть такой код:
Код
Sub Кнопка1_Щелчок()
UserForm1.Show
End Sub
дополняете его еще одной процедурой, чтобы получилось так:
Код
Sub Кнопка1_Щелчок()
UserForm1.Show
End Sub
'вызов формы поиска
Sub CallFind()
ufFind.Show
End Sub
5. Правая кнопка мыши на скопированной в файл 2 кнопке -Назначить макрос. Выбираете CallFind.
6. ВСЕ.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Поиск по всей книге
 
А где там поиск хотя бы по одному листу? Там только внесение данных, ни про какой поиск даже намека нет. Или под словом помогите надо понимать "сделайте поиск с нуля"? :)
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Выпадающий список из нескольких диапазонов, Выпадающий список из нескольких диапазонов. Объединение нескольких списков в один. Объединение диапазонов в один
 
Цитата
skais675 написал:
нужно объединить диапазоны типа двух таких
тут главный вопрос в том, можно ли это делать на отдельном листе. Т.е. объединить нужное на отдельном листе и уже из него брать неразрывный диапазон для списка. Если нет - то вариантов нет вообще.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Конфликт макросов
 
Цитата
apawa написал:
то бывает ошибка 400
ну вообще в общем случае ошибка 400 это невозможность отобразить в модальном режиме форму, т.к. на данный момент уже запущена другая форма в модальном режиме. Можете привести текст ошибки? В моем коде тоже самое?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Выпадающий список из нескольких диапазонов, Выпадающий список из нескольких диапазонов. Объединение нескольких списков в один. Объединение диапазонов в один
 
Цитата
skais675 написал:
возможно ли
решение формулой
НЕТ. Вообще никак при таких условиях. Вып.списки невозможно создавать из несвязанных диапазонов.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Отправка письма после закрытия и сохранения книги
 
Цитата
Vladimir69 написал:
после изменения книги
Цитата
Vladimir69 написал:
Использовал сравнение даты изменения файла после открытия и после сохранения
это не дает гарантии того, что книга была изменена. Могли открыть, посмотреть, ничего не менять, сохранить и закрыть. В зависимости от версии Excel можно попробовать использовать событие AfterSave. В Excel вроде как начиная с 2010 появилось.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Конфликт макросов
 
Цитата
apawa написал:
но это вызвало другую ошибку
какую?
По сути, все можно сделать чуть проще и чуть правильнее:
Код
Sub S4itivanie() 'Макрос2 - копирование из книги
    Dim ImaKnig1 As Workbook
    Dim ImaKnig3 As String, ImaKnig2
    Dim IsNeedClose As Boolean
    
    Set ImaKnig1 = ThisWorkbook
    ImaKnig2 = Application.GetOpenFilename _
                    ("Excel files(*.xls*),*.xls*", 1, "Выбрать Excel файлы для передачи данных", , False)
    If VarType(ImaKnig2) = vbBoolean Then
        Exit Sub
    End If
    
    ImaKnig3 = Dir(ImaKnig2)
    If ImaKnig3 <> "" Then 'проверяем, что эта книга есть по этому пути
        Application.EnableEvents = False
        If Not BookOpenClosed((ImaKnig3)) Then
            IsNeedClose = True 'флаг, что книгу надо закрыть
            Application.Workbooks.Open ImaKnig2
        End If
        Application.Workbooks(ImaKnig3).Worksheets("Спецификация").Range("A2:J23").Copy ImaKnig1.Sheets("Спецификация").Range("A2")
        If IsNeedClose Then
            Application.Workbooks(ImaKnig3).Close False
        End If
        Application.EnableEvents = True
    End If
End Sub
 
'функция, предназначенная для проверки, открыта или закрыта рабочая книга.
Function BookOpenClosed(wbName As String) As Boolean
    Dim myBook As Workbook
    On Error Resume Next
        Set myBook = Workbooks(wbName)
    BookOpenClosed = Not myBook Is Nothing
End Function
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Добавить макрос в панель быстрого доступа
 
Можете в самом этом файле сделать процедуру, которая добавит свою кнопку на панель(в зависимости от типа файла и версии Excel это может быть и панель быстрого доступа, и собственная панель и вкладка Надстройки). Ознакомьтесь со статьей - если правильно применить, проблему можно решить: Как создать свою надстройку?
Добавлю лишь то, что если панель или кнопка нужна только при запуске файла, то можно сделать все так же как в статье, но не сохранять файл как надстройку.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
VBA: Почему ошибка Run-time error '13': Type mismatch, если в массиве один элемент текст
 
Цитата
Jack Famous написал:
так в примере же цикл на  млн - как одно-то?)
о нет, я не про то. Я про то, что если в массив загонять не одну ячейку, а куда больше :)
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
VBA: Почему ошибка Run-time error '13': Type mismatch, если в массиве один элемент текст
 
Цитата
Jack Famous написал:
переопределять что-то мне кажется более долгим, чем присваивать в готовое
тут как бы...Да, в данном конкретном случае, скорее всего так и есть. Ибо значений мало. Но если речь не про одну ячейку - то все же нет.
А в данном конкретном случае таки да - твой вариант выигрывает по скорости. Но использовать я все равно буду свой  8)  
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Как изменить формат ячейки в Power qwery на нестандартный
 
Могу только предложить вариант перед загрузкой в Power Query преобразовывать видимое значение ячейки в такое же, но реальное: Видимое значение ячейки в реальное
Хотя можно и через указанную функцию в PowerQuery, но тут есть нюанс: надо быть точно уверенным, что для всех ячеек один и тот же формат применен. Потому как по опыту знаю, что там может даже текст добавляться к числовым данным именно отдельных ячеек, что делает инструмент из PowerQuery бесполезным. Т.е. там по сути может применяться до 100 разных форматов - в зависимости от реального значения артикула...
Изменено: Дмитрий(The_Prist) Щербаков - 22 янв 2021 16:49:31
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Power Query. Если обновить запрос, заливается цветом весь столбец. Почему?
 
Цитата
ArtGo написал:
применение форматов реализовано на стороне Power Query.
Вы бы для начала прочитали про Power Query, что ли...Она вообще к форматам на листах самое последнее отношение имеет.
Ну и без файла примера проблема совсем непонятна. Неясно, что именно написано в Worksheet_Change. Неясно где именно это применяется - в обоих случаях в умных таблицах или в разных.
А название темы вообще далеко от проблемы и ничего общего с написанным в первом сообщении текстом не имеет. В названии темы речь про загрузку, а в описании про это ну вообще ни слова. Какая-то связь вообще есть или нет?  
Изменено: Дмитрий(The_Prist) Щербаков - 22 янв 2021 16:46:30
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
VBA: Почему ошибка Run-time error '13': Type mismatch, если в массиве один элемент текст
 
Цитата
Jack Famous написал:
у тебя будет (для этого примера) — для каждой области
не, ну если таким путем идти, то конечно. Только ты забываешь и еще одну вещь: переопределение через ReDim не одно и тоже, что инициализация :) И происходит быстрее, т.к. сам массив по сути уже есть.
Если бы мне было не лень - может сделал бы сравнительный анализ. Но что-то подсказывает, что выигрыша в скорости в твоем варианте ожидать особо не стоит. Потому что переопределение массива явно быстрее, чем пихание сначала в заранее определенный массив одной ячейки, а потом пихание его в другой массив, который на лету должен будет все равно переопределиться(внутренними ресурсами). Т.е. по сути тот же ReDim все равно будет вызван...Могу ошибаться, конечно, но что-то такое в памяти всплывает из области назначения значений массиву на лету.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Как изменить формат ячейки в Power qwery на нестандартный
 
Цитата
Shady написал:
Вот так в источники выглядит
фиговый пример. Вы выделили число БЕЗ ведущего нуля. Следовательно этой ячейке без разницы что там с числовым форматом в PQ.
я это к чему: если это некая выгрузка, то там для каждой ячейки может быть свой формат, не похожий на формат других ячеек.
Изменено: Дмитрий(The_Prist) Щербаков - 22 янв 2021 15:10:39
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Как сохранить копию листа Excel в Word?
 
Цитата
Olzhas написал:
включая колонтитулы?  
файл не смотрел, но колонтитулы вообще отдельная тема и их так же отдельно надо переносить. Копировать не получится. Не самая простая тема.
Ну а про это
Цитата
Olzhas написал:
выгружается растянутая таблица

я писал в самом начале темы:
Цитата
The_Prist написал:
А потом самое сложное - отформатировать так, чтобы это вменяемо выглядело.
после переноса надо все подгонять под нужный Вам формат. Тоже не самое мое любимое занятие. Это надо делать уже в Word. Перенесите туда таблицу как есть и попробуйте отформатировать до нужного состояния руками. Если это будет просто(типа просто ужали её с краев) - значит вполне легко можно это записать макрорекордером ворда и подставить в код из Excel. А если там куча подстроек под размер - это уже совершенно отдельная тема и тоже не самая простая, возможно.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
VBA: Почему ошибка Run-time error '13': Type mismatch, если в массиве один элемент текст
 
Цитата
Jack Famous написал:
можно подсократить и ускорить для циклов
ускорения тут не вижу, если честно...Сокращение строк - да. Но я этим не страдаю :)
И там и там инициализация массива займет одинаковое кол-во времени(у меня через ReDim, у тебя через Dim). Только в моем коде этой инициализации не будет, если выделено более одной ячейки. Да, есть однозначное присвоение значения переменной, но оно есть и у тебя.
Плюс, в твоем коде идет сначала получение значений из ячеек, а потом перекидывание этих значений из одного массива в другой(одного значения). Не уверен, что такой подход что-то ускорит.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Как изменить формат ячейки в Power qwery на нестандартный
 
Цитата
Shady написал:
справа как нужно мне
еще покажите, как это отображается в источнике для запроса PowerQuery...Пока видно то, что по факту можно просто убрать из шага преобразование этого столбца в формат number
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
VBA: Почему ошибка Run-time error '13': Type mismatch, если в массиве один элемент текст
 
Ну вообще все делается иначе обычно.
Код
Dim ВыкладкаФайлы
ВыкладкаФайлы = Selection.Value2
If Not IsArray(ВыкладкаФайлы) Then
    ReDim ВыкладкаФайлы(1 to 1, 1 to 1)
    ВыкладкаФайлы(1,1) = Selection.Value2
end if
а далее работаем с массивом и все.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Сводная таблица из разных листов с разной шапкой
 
Собрать данные с таблиц с изменяющимися столбцами в PowerQuery
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Символ дельта в системе уравнений что означает?
 
1. Не совсем понятно, почему в общей ветке, а не в курилке
2. А квадратные скобки вместе с круглыми Вас не смущают?
3. Это явно должен быть знак "меньше-равно", но что-то пошло не так в момент распознавания
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Как кликнуть кнопку в internet explorer через vba?, нажать на кнопку "Скачать" для скачивания таблицы
 
Цитата
Anton_Kozlov написал:
Если он сработал значит не спорно
все же спорно, наверное, т.к. код кнопки в первом сообщении отличается от того, который в решении приведен. Но в любом случае хотя бы есть что пробовать тем, у кого возникнет такая же проблема.
P.S. Ну и надо сказать, что Ваше решение очень незначительно отличается от кода, который в качестве примера привел Игорь.
Изменено: Дмитрий(The_Prist) Щербаков - 21 янв 2021 14:47:23
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Заполнение ячеек в строках, скрытых фильтром
 
Цитата
VIZ_VIZ написал:
как доработать указанный ниже макрос, чтобы он заполнял не только видимые ячейки, но и ячейки в скрытых строках
вот тот код, который Вы привели в первом сообщении как раз учитывает и скрытые тоже. Его наоборот надо учить заполнять только видимые. Другой вопрос, откуда у Вас берется a1.Row. Вот она может быть и получается только из видимых строк при неправильном подходе к её получению.
Но т.к. у Вас подход не проблему решить, а обидеться на справедливые просьбы о нормальном хотя бы куске кода, а не одной строке - то помочь Вам нечем.
Цитата
VIZ_VIZ написал:
параметр LookIn:=xlValues как раз определяет поиск в скрытых строках
а теперь не погуглите, а проверьте на своем примере, правда ли это. Потому что смотреть надо не параметр, а на сам метод Range.Find. Который как раз ничего в скрытых ячейках не ищет, если вызван из VBA с параметром xlValues. Вот именно этот xlValues игнорирует скрытые строки. А если использовать xlFormulas - то скрытые тоже будут в поиске.
Изменено: Дмитрий(The_Prist) Щербаков - 21 янв 2021 14:35:53
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Реализовать возможность формирования word документа из excel
 
Цитата
nipolka написал:
не нашел идеального варианта для себя
и не найдете. Сама основа задачи не нова - заполнение файлов Word из Excel обсуждалось и рассматривалось не раз. Но вот конкретика и нюансы уже выходят за рамки шаблонов и надо выдумывать алгоритмы. Вот еще статья на тему: Как из Excel обратиться к другому приложению
Она поможет разобраться с основами, а приложенный пример заполнения может натолкнуть на решение.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Создание новой таблицы на основе фильтра основной таблицы (формулами)
 
Формулами так формулами. Никаких новинок из 365 - только хардкор :) Формула массива, если что.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
CУММА ячейки которая содержит текст типа 2+2+2
 
Цитата
IKor написал:
при помощи какого-то инструмента типа макросов
это функция листа макросов ВЫЧИСЛИТЬ. Она вполне может такое делать, но по сути куда правильнее использовать UDF, т.к. макросы все равно надо будет разрешать. А UDF можно сделать куда универсальнее и удобнее в использовании.
Про функцию ВЫЧИСЛИТЬ. Если необходимый для вычисления текст в ячейке А1, а результат нужен в В1, то выделяем В1 -переходим на вкладку Формулы -Диспетчер имен -Создать. Даем понятное имя, например "_выч". В качестве формулы вбиваем:
Код
=ВЫЧИСЛИТЬ(Лист1!A1)
Подтверждаем.
Теперь в В1 вбиваем =_выч. Текст в А1 будет вычислен. Если протянуть вниз - то будут вычислены и А2, А3 и т.д. Но указать любую произвольную ячейку будет нельзя.
UDF удобнее. Создаем:
Код
Function EvalCell(rc As Range)
    EvalCell = Evaluate(rc.Value)
End Function
в любой ячейке вбиваем:
=EvalCell(A1)
при этом вместо А1 можно указать ссылку на любую ячейку, чего никак нельзя сделать при помощи макрофункции ВЫЧИСЛИТЬ.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Как выписать цепочку данных по определенному артикулу, если они связаны друг с другом?
 
Цитата
Никита Королев написал:
что необходимо поменять в коде
изначально лучше пример прикладывать, максимально отвечающий требованиям задачи, если сами не в силах эту задачу решить и возможное решение подстроить. Это на будущее. Переделывать каждый раз под новое "а у меня вот так" мало у кого желания возникает
Код
Dim dic As Object

Sub main()
    Dim arr, aarts, sArt$, s$
    Dim lr&, lc&, la&, llastc&, llastr&
    
    
    With ActiveSheet
        llastc = .Cells(3, .Columns.Count).End(xlToLeft).Column
        aarts = .Cells(3, 8).Resize(2, llastc - 7).Value
        For la = 1 To UBound(aarts, 2)
            sArt = aarts(1, la)
            Set dic = CreateObject("scripting.dictionary")
            dic.comparemode = 1
            If Len(sArt) Then
                dic.Add sArt, 0&
                llastr = .Cells(.Rows.Count, 1).End(xlUp).Row
                llastc = 4
                arr = .Cells(3, 1).Resize(llastr - 2, llastc).Value
            
                For lr = 1 To UBound(arr, 1)
                    s = arr(lr, 1)
                    If s = sArt Then
                        For lc = 2 To UBound(arr, 2)
                            s = arr(lr, lc)
                            If Len(s) Then
                                If Not dic.exists(s) Then
                                    dic.Add s, 0&
                                    GetLinkedArt s, arr
                                End If
                            End If
                        Next
                        Exit For
                    End If
                Next
                dic.Remove sArt
                If dic.Count > 0 Then
                    .Cells(4, la + 7).Resize(dic.Count, 1).Value = Application.Transpose(dic.keys)
                End If
            End If
        Next
    End With
End Sub
Function GetLinkedArt(sArt$, arr)
    Dim lr&, lc&, s$
    For lr = 1 To UBound(arr, 1)
        s = arr(lr, 1)
        If s = sArt Then
            For lc = 2 To UBound(arr, 2)
                s = arr(lr, lc)
                If Len(s) Then
                    If Not dic.exists(s) Then
                        dic.Add s, 0&
                        GetLinkedArt s, arr
                    End If
                End If
            Next
            Exit For
        End If
    Next
End Function
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Автоматическая подгрузка данных из Word d Exсel
 
Цитата
Hjq написал:
Можете помочь реализовать
помочь - можем. Начните с этого: Как из Excel обратиться к другому приложению
А желтым в приложенном файле вообще ничего не отмечено, так что...
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 392 След.
Наверх