Доброе утро гуру и другие форумчане. Пропали списки макросов из окна при нажатии на кнопу макросов (либо Alt+F8). Сами макросы никуда не делись и находятся в файле(файлах), в Project Explorer все модули и всё остальное отображается и всё работает. Переключение в окне макросов на "Все открытые книги", "Эта книга" или на любой открытый файл к результату не приводят: окно пустое, а все кнопки неактивны. При создании нового макроса, он показывается в окне макросов только на момент создания, после закрытия окна больше в окне не появляется, окно пустое. Обновление последнее стоит. Office 2021, Windows 10 Pro. Такое у меня впервые и ответа по поиску не нашел. Что могло произойти и как это исправить?
Добрый день. Хотелось бы получить следущее: Макрос Экселя , который бы : 1. Открывал Google Таблицу 2. Скачивал бы Google Таблицу в ЭксельФормате, иммитируя Файл/Скачать/Microsoft Exel (XSLX), сохраняя у указанную папку, например, С:/Пример/ 3. Открывал скачанный файл и перебирал бы значения каждого листа, находя изменения: значений, примечаний, цвета ячеек. 4. Сохранял бы файл с названием с добавленным временем сохранения. 5. При нахождении изменений отправлял бы Аутлуком на почту уведомлние об изменении. 6. Повторял бы всю процедуру каждые, например, 10 минут.
Здравствуйте, гуру и другие форумчане!!! В работе использую реестр НАКС для проверки сварщиков и специалистов по номеру удостоверения. Всё работало нормально. Но реестр поменяли и добавили буттон "подробнее", причем выглядит как гиперссылка. При ее нажатии появляется окно с дополнительными данными по аттестации. И вот до этих данных я не знаю как добраться, т.к. все мои известные мне способы не позволяют это сделать. Как мне добраться до этих данных и "тупо" скопировать их в Эксель? Файл прилагаю.
При вводе на сайте номера удостоверения в соотв. поля и нажатии "фильтр" формируется строка и ее сайт и открывает. Поэтому я сразу ввел ссылку в макрос для открытия Эксплорера с уже сформированной ссылкой.
Здравствуйте. Нужна консультация. Предлагаю по скайпу, показываю экран - объясняю задачу, вы говорите, что делать. Если нужен файл - отправлю. Предполагаю работу завершить за 1 час, может и меньше, т.к. сам не начинающий. от 100 до 500 руб. на телефон, карту Сбера.
Здравствуйте гуру и другие форумчане!!! Столкнулся с тем, что не знаю, как узнать, является ли значение в ячейке гиперссылкой. В итоге нужно получить текст этой гиперссылки. Не привожу весь макрос...
Алгоритм таков: Открываю нужную мне страничку.
Код
IE.Navigate (Url)
Перебираю все таблицы на страничке. Нахожу нужную.
Код
Set maTable1 = Htable(НомерТаблицы)
В табличке перебираю по строкам и нахожу нужную мне строку. В этой строке нахожу нужную мне ячейку. Значение этой ячейки .innertext
Код
ффф3 = maTable1.Rows(Строка).Cells(7).innertext
А дальше мне нужно узнать, является ли значение в этой ячейке гиперссылкой и получить текст этой гиперссылки (или как правильно назвать: путь?) Чисто не хватает теории. Подскажите плиз.
Здравствуйте, гуру и другие форумчане. Пытаюсь автоматизировать работу, но натолкнулся на раскрывающиеся списки, т.е. "select". А вот как с ним работать? Т.е. надо раскрыть, выбрать мышкой значение и ввести его. Вот так выглядит:
Код
<td colspan=2><select name="st_filial"
onchange="if(this.options[this.selectedIndex].value==='N'){document.getElementById('tr_egr').style.display='none';document.getElementById('tr_forg').style.display='none';}else{document.getElementById('tr_egr').style.display='';document.getElementById('tr_forg').style.display='';}"><option
value=""></option>
<option value="Y"
>Организация
имеет филиалы</option>
<option value="N"
>Организация
не имеет филиалов</option>
</select></td>
Я нахожу его так:
Код
For Each n In IE.Document.getElementsByTagName("select")
If n.Name = "st_filial" Then
n.Option.Value = "Y"'ЭТО ЗНАЧЕНИЕ ВСЕГДА EMPTY
n.Value = "Организация не имеет филиалов"'НЕ ВСТАВЛЯЕТСЯ
End If
Next
Подскажите, как сделать выбор? Как сымитировать нажатие мышкой, если по-другому нельзя?
Здравствуйте, гуру и другие форумчане! Научился работать макросом с Эксплорером. Но возникла проблема: не могу вставить значение, т.к. по известным мне приемам этого не получается. Помогите разобраться. Открываю страничку:
Код
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True 'False '
Вкладка = Url
IE.Navigate (Вкладка)
Do Until IE.ReadyState = 4 'Конструкция цикла этого ждет, пока полностью не откроется страница в браузере
DoEvents
Loop
aaa = IE.Document.getElementsByTagName("TEXTAREA").Value
И вот значение aaa получается пустое. И никак не могу понять почему. Я точно знаю, что TagName этого элемента = TEXTAREA, т.к. проверял так:
Код
For i = 331 To IE.Document.all.Length - 1
у34 = IE.Document.all.Item(i).innerText
у35 = IE.Document.all.Item(i).Value
у36 = IE.Document.all.Item(i).tagName
If Trim(у34) = "" Then GoTo 22
MsgBox IE.Document.all.Item(i).innerText, vbInformation, "Элемент № " & i
22 Next i
Здравствуйте, Гуру и другие форумчане!!! Использую следующий код (показываю только часть) для считывания данных с веб-страницы:
Код
Url = "ХХХХХХХ"
S = DownloadString(Url) 'Загружаем текст страницы
...
Function DownloadString(ByVal Url$) As String 'Функция скачивания текста страницы
Dim W
Set W = CreateObject("Microsoft.XMLHTTP")
И на последней строке Set W = CreateObject("Microsoft.XMLHTTP"), вдруг, ни с того ни с сего, стала вылетать ошибка: Run-time error '2147023782 (8007045a) Automation error Произошел сбой в программе инициализации библиотеки динамической компоновки (DLL). Перезагружал Эксель, перезагружал комп - ошибка повторяется. Не могу понять в чем же ошибка. И это при том, что ни в каких настройках не лазил и ничего не менял. Подскажите, в чем же ошибка? Может, какая-нибудь библиотека "вылетела"? Заранее благодарю.
Здравствуйте, гуру и другие форумчане. Научился работать с сайтами через макросы в Экселе с помощью
Код
URL = "https://******"
On Error Resume Next
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
IE.Navigate (URL)
Но окно Эксплорера всегда открывается в свернутом виде. И приходится каждый раз его разворачивать нажатием квадратика в правом верхнем углу окна. Как сделать так, чтобы Эксплорер открывался в развернутом окне? Может, есть какой параметр? Спасибо.
Здравствуйте гуру и другие форумчане! Не так давно научился брать данные с сайта макросом. Но сейчас возникла необходимость вставлять данные из Экселя на сайт. На сайте разные поля и таблицы куда вставлять. Хотелось бы знать, в принципе это возможно, вставить данные на веб-страничку? Ну, и если возможно, то как?
Здравствуйте Гуру и другие формучане!!! Создаю новый файл на основе шаблона. Создаю полностью с нуля, т.е. создаю новую книгу, редактирую все ячейки и т.д. По шаблону должна стоять формула =ЕСЛИ(H15="вкл";G15;G15+H15) т.е. если в ячейке стоит "вкл", то просто вставляет стоимость. А если там другое значение (вводится стоимость доставки), то суммирует стоимость со стоимостью доставки. Но при вставке формулы выдает ошибку и не могу понять в чем дело. В итоге должна вставиться формула без ошибки. Прошу извинить, если неточно объясняю. Файл прилагаю.
Приветствую. В приложенном файле ссылки и описание, что нужно сделать. Предлагаю ознакомиться и высказать свое мнение. Эксель 2013. Стартовая цена 100 руб.(торг) Евгений.
Здравствуйте, гуру и другие форумчане! Открыл для себя облако OneDrive от Майкрософта. Работает с Офис 2013. Работаем несколько человек с одними файлами. Плюс в том, что можно открывать прямо из облака полноценный Эксель файл (не как в Гугле) и использовать все преимущества экселя. Проблема возникла, когда решили целиком перейти в OneDrive и использовать все макросные наработки. Проблема с переборкой файлов в папке. Код:
Код
ПутьКпапке = ThisWorkbook.Path & "/"
s = Dir(ПутьКпапке & "*.*")
Do While s <> ""
s = Dir
Loop
не работает, выдавая ошибку: Bad file name or number на строке s = Dir(ПутьКпапке & "*.*") ПутьКпапке выглядит следующим образом: https://d.docs.live.net/881c21f........13c/ОблПредприятия/ЭнергоТехСервис 2015/ Вместо точек там всякие другие символы и цифры. Кто может уже работал в этой системе? Или это какая-то банальная ошибка в написании? Может, есть другие способы перебирать файлы в папке?
Здравствуйте гуру и другие форумчане! Очень часто пользователи сортируют лист автофильтром и, сохраняя, забывают вернуть сортировку по столбцу с порядковыми номерами обратно. И когда открываешь файл, не всегда сразу соображаешь, что лист отсортирован по другому столбцу - теряешь время. Визуально это можно увидеть на значке автофильтра. А как это "увидеть" макросом? Хотелось бы, чтобы макрос при открытии проверял по какому столбцу отсортирован лист сейчас и, если не по столбцу с порядковым номером, то провести сортировку по нему. В принципе, по сортировке вопросов нет, а вот как "увидеть" по какому столбцу? Теоретически, проходим по строке, в которой стоят автофильтры, и ставим условие на какое-то свойство ячейки, которое определяет, на этой ячейке стоит автофильтр и именно по нему сейчас отформатирован лист. Что это за свойство? Как оно выглядит в макросе? Заранее благодарю.
Здравствуйте гуру и другие форумчане! Столкнулся с тем, что поиск файлов в конкретной папке не обнаруживает файлов. Но все по порядку. Эксель 2007. Создаю кодом гиперссылку:
где FolderForHipr - полный путь к папке. Подчеркиваю, полный путь. Все работает, все прекрасно: при нажатии на ячейку папка открывается, при наведении показывает полный путь к папке. Но... Далее хотел использовать в том же файле Экселя значение адреса гиперссылки для отправки файлов, которые находятся в папке, через аутлук кодом, но столкнулся с тем, что код
Значение ПутьГиперссылки выдается без С:\ и еще одной папки!!! Т.е. часть пути "съедена"!!! MsgBox ПутьГиперссылки - показывает две точки впереди и дальнейший путь к моей папке. При открытии контекстного меню "Изменить гиперссылку..." в поле "Адрес гиперссылки" также указан путь со "съеденым" началом. Так вот и вопрос: может я где-то, что-то не добавил? Может у Address есть какой-то дополнительный параметр? Подскажите, пожалуйста.
Доброго времени суток! Столкнулся с проблемой. Работаю с макросами как в Ворде, так и в Экселе. Чаще всего мне приходится управлять либо из Ворда Экселем, либо наоборот. Т.е. открываю ворд, запускаю макрос, который берет данные из экселя и ворда, редактирует и эксель и ворд. Ну... в разных комбинациях. Сейчас столкнулся с тем, что не получается из ворда осуществлять копирование и вставку форматов. Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False не работает Application.CutCopyMode = False не работает тоже. Кто может помочь объяснить, как сделать, ответьте.
Здравствуйте, гуру и другие форумчане. У меня на компе установлено 2 офиса: 2007 и 2013. Я работаю только с 2007, но пришлось установить 2013, для работы в onedrive.live.com . Макрос с Ворда открывает файл Экселя:
Код
Dim ДаннОбъект As Object
Dim ДаннФайл As Object
Set ДаннОбъект = CreateObject("Excel.Application") 'создание объекта Excel
Set ДаннФайл = ДаннОбъект.Workbooks.Open(FileName:=iFileName, ReadOnly:=True)
'код по работе с Экселем
ДаннОбъект.Quit
'продолжение кода
Но открывает в Экселе 2013. При этом на открытие и закрытие очень надолго (30-60 сек.) виснет. И при этом еще пытается пересчитать формулы (выскакивает окно пересчета формул) и все остальные действия (каждая строка кода) выполняется с указанным зависанием. До установки Офиса 2013 такой проблемы не было. Вопрос: можно ли открыть Эксель кодом именно 2007, а не 2013? Заранее благодарю.
Здравствуйте гуру и другие форумчане! Кто-нибудь мне может пояснить, почему у меня не получается сохранить дату в ячейке в формате дд.мм.гг? Вроде делаю так, как советуют (по поиску). Но что-то у меня не так, что именно не пойму. Файл урезанный прилагаю. Нажимаешь дважды на ячейку, выделенную желтым цветом. Кто подскажет, как мне перевести в нужный мне формат?
Здравствуйте гуру и другие форумчане. Попробовал сформулировать проблему в одно предложение для поиска - не получилось. Сразу прошу прощения, и вправду, возможно такое обсуждалось, но я не знаю, как сформулировать кратко. Мой макрос в Экселе открывал файл Ворд и вставлял туда данные с помощью закладок из этого файла Экселя. Работает макрос уже несколько лет на нескольких компьютерах, и на этом компьютере тоже работал, до переустановки системы и, соответственно, Офиса. И сейчас появилась проблема. Эксель зависает и пишет через некоторое время, что "Объет не отвечает. Возможно, приложение-сервер занято." Или " Эксель ожидает завершения OLE-операции другим приложением". При прогонке с помощью F8, выяснил, что сбой происходит на строке WordApp.Visible = True Посмотрел все библиотеки - пропущенных нет. Вобщем, даже не знаю в какую сторону думать. Офис 2007. Все обновления установлены. Виндоус 8 тоже со всеми обновлениями. Файл Экселя в 2003. Что это может быть?
Здравствуйте гуру и другие форумчане!!! Виндоус 8, Офис 2007. Купил новый бук и перенес свои файлы и, соответственно, макросы. Из Экселя открываю Ворд с помощью:
Код
Dim WordApp As Object
Dim iFileName As String
Dim wdDoc As Object
Set WordApp = CreateObject("Word.Application") 'создание объекта WORD
WordApp.Visible = True
На старых компах работает без ошибки, а вот на новом на строке
Код
WordApp.Visible = True
выдает ошибку Ворда "Неверно указана единица измерения". Так как это окошко появлялось за окном Экселя, долго не мог понять, почему же виснет Эксель, а Ворд не открывается. Потом случайно увидел это окошко. Когда на этом окошке нажимаешь ОК, дальше макрос работает нормально, без ошибок. Никак не пойму, в чем же может быть ошибка? Может, какую-нибудь библиотеку не подключил? Хотя смотрел на других компах и на своем новом - все библиотеки одинаково включены. Может, у кого было такое?
Здравствуйте, гуру и другие форумчане!!! Столкнулся с такой вещью. Купил новый бук с Виндоус 8 и установил на него Офис 2007. Перенес все свои файлы. Так вот стало выдавать ошибку на сохранение как ... файла. Попробовал записать макрорекордером сохранить файл как..., но код оказался пустым. Пробую на других компах - записывает. Есть еще много других непонятных ошибках, которых в принципе не должно быть. Так вот мой вопрос: 1. Было ли у кого-нибудь, чтобы макрорекордер не записывал. 2. Может ли быть, что все ошибки из-за глючного Оффиса2007. Может, есть смысл его переустановить с другого источника?
Здравствуйте, гуру и другие форумчане. Проблема состоит в следующем. Купил новый бук. Установил Офис 2007. Перенес все свои файлы. Использую при двойном нажатии левой кнопки мыши копирование содержимого ячейки. Так вот при вставке значения, вставляются два непонятных квадратика. Хотя MsgBox выдает правильное значение. На старом компе вставляет правильно, а на новом не хочет.
Код
Dim MyData As DataObject
eee = Left(Target.Address(0, 0), 1)
If eee = "I" Or eee = "K" Then
rrr = Target.Value
Set MyData = New DataObject
MyData.SetText rrr
MyData.PutInClipboard
MsgBox rrr & " Скопировано в буфер"
Cancel = True
End If
Нутром чувствую, что ошибка где-то рядом, но понять не могу. Может, какая-нибудь библиотека не подключена?
Здравствуйте гуру Экселя и другие форумчане. Использую функцию ВПР для отображения значений в одной ячейке в зависимости от значения в другой. Все нормально, пока значения не превышают . Подробнее: На листе 1 в ячейке А1 находится выпадающий список, значения которого выбираются из именованного диапазона, находящегося на листе 2. В ячейке А2 функция ВПР, которая вставляет значения из столбца В на листе 2, рядом с именованным диапазоном. При выборе в ячейке А1 на лист1 значений от А1 до А9 функция работает нормально, т.е. при выборе "А1" - вставляет "ТД", "А3" - "ВД" и т.д. Но при выборе "А10" должна вставить "АДФ", а вставляет "ТД", как будто значение для "А1"!! При выборе "А11" - снова вставляет "ТД"!!! Как быть? В чем ошибка?
Здравствуйте гуру и другие форумчане. Делаю макрос для расчета стоимости, а вот при сохранении хотелось бы удалить все макросы из сохраняемого файла. Вопрос: Как сделать так, чтобы макросы удалялись только из сохраняемого под другим именем файла? Т.е. на событие сохранить макросы не удалялись, а удалялись только на событие сохранить как... Я поставил Msgbox на событие Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) и он выскакивает и при нажатии кнопки сохранить и при нажатии кнопки сохранить как...
Здравствуйте, гуру и другие форумчане!!! Использую для вставки следующую команду: Cells(Selection.Row + 1, ПослЯчСтрок - 2).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= False, Transpose:=False Но при этом Эксель почему-то выделяет диапазон, который вставил. Так как вставка происходит за пределами таблицы, в которой работаю, вся таблица смещается с видимого экрана и приходится переходить к первым столбцам таблицы вручную. Понимаю, что можно просто выделить первую ячейку в строке "Cells(Selection.Row + 1, 1).Select", но решил спросить: Может, есть какой-то дополнительный параметр при вставке, который не выделяет вставленный диапазон?
Здравствуйте гуру и другие форумчане! Всех православных с Крещением!!! Пытаюсь присвоить в макросе диапазону ячеек короткое название, чтобы потом можно было к нему часто обращаться. Но выдает ошибку, не могу понять в чем дело. Set L2 = Worksheets("Лист2")'Присваиваю листу 2 a = L2.Cells(Rows.Count, 1).End(xlUp).Row'Нахожу последнюю заполненную ячейку Set Diap = L2.Range(Cells(2, 1), Cells(a, 1)) - а здесь выдает ошибку. Какую ошибку я совершил?
Здравствуйте, гуру и другие форумчане! Нашел на форуме формулу для генерации случайных чисел. a = Int((32 * Rnd) + 1) где число 32 - это предел, в котором меняются числа. Всё вроде хорошо, но.... Открываю файл, запускаю макрос - всё меняется, формула считает. Закрываю файл, открываю его снова, запускаю макрос - а цифры снова те же самые!!!! Я проверил раз, проверил 2, 3...10. Открываю файл, цифры одни и те же. Сделал специально файлик, чтобы вам показать. Вопрос, как сделать так, чтобы генерация была действительно случайной, а не "одинаково случайной"?
Здравствуйте гуру и другие форумчане. Открываю гиперссылки макросом. Естественно, отрываются они в браузере по умолчанию.
For Each myHyperlink In ActiveDocument.Hyperlinks myHyperlink.Follow Next myHyperlink Так он отрывает в браузере по умолчанию (Эксплорер) А как отрыть гиперссылку в другом браузере, например, в Опере или ГуглХроме?
Здравствуйте гуру и другие форумчане. Вчера открыл для себя Чекбоксы на листе, работающие без макросов. А сегодня решил их применить, но упёрся и не могу сдвинуться. Файлик прилагаю. Ответ-то, как мне кажется, где-то на поверхности, но не могу до него додуматься. Есть четыре чекбокса. Ставя на них галочки, должны появляться наименования этих чекбоксов. В макросах это просто - пробегаешь по всем чекбоксам на форме, если стоит галка - значит добавляешь, не стоит галка, пропускаешь, если галка одна, то нет точки с запятой, если галок больше одной, то между значениями точка с запятой. А вот как это сделать без макроса? Я попробовал, но получается много "если" и "и", а Эксель, насколько я знаю, допускает не больше 7-ми вложенных если. Вопрос, как быть?
Здравствуйте, гуру и другие форумчане!!! Достался мне один файлик. Ничего необычного, но я увидел в нем что-то похожее на Чекбокс. Повторить такое же сделать самому у меня не получилось. Это чекбокс работает без макросов. Может мне кто-нибудь объяснить, что это такое, как его сделать, и как с ним работать? Спасибо. файлик (обрезанный) прилагаю.