Коллеги, доброго времени суток! Есть книга, при открытии которой открывается форма с заставкой (сделано по букварю). Задача: после выгрузки этой начальной формы (InitForm) загрузить следующую, MainForm, представляющую собой меню с кнопками (никаких параметров программно в неё не загружается). Собственно, делаю следующее: Имеется Private Sub для автоматической выгрузки первой формы через некоторое время
Код
Private Sub UserForm_Activate()
Application.OnTime Now + TimeValue("00:00:03"), "KillForm"
End Sub
В "KillForm" добавлены активация первого листа книги и загрузка формы MainForm:
Код
Private Sub KillForm()
Unload TitleForm
ThisWorkbook.Worksheets("Main").Activate
Show MainForm
End Sub
Также по событию клика на начальной форме добавлена загрузка MainForm и активация первого листа
Код
Private Sub Image1_Click()
Unload TitleForm
ThisWorkbook.Worksheets("Main").Activate
Show MainForm
End Sub
Но конструкции не работают ни автоматически, по истечении времени , ни по клику на начальной форме.
Automation error Вызываемая сторона (сервер [а не приложение-сервер]) недоступна и исчезла;ни одно подключение более не действует. Сам вызов, возможно, выполнен."
Добрый день, коллеги! Возникли сложности с передачей обратно значений, изменяемых пользователем в UserForm Идея была следующая: В UserForm передаются значения года, месяца, первого и последнего дня месяца (макрос изначально предназначался для копирования отчётов) Определяются параметры по умолчанию (текущие год, месяц и дата) и передаются в качестве начальных значений в элементы пользовательской формы.
Код
Option Base 1
Option Explicit
Sub TestUserForm()
Dim curYear As String
Dim curMonth As String
Dim curDay As String
Dim firstDay As Integer
Dim lastDay As Integer
'Значения по умолчанию (текущие)
curYear = DatePart("yyyy", Now)
curMonth = MonthName(DatePart("m", Now))
curDay = Day(Now)
firstDay = 1
lastDay = dayInMonth(curMonth)
'Вызов формы
Call GetValues(curYear, curMonth, firstDay, lastDay)
curMonth = monthNum(curMonth)
End Sub
Sub GetValues(curYear, curMonth As String, firstDay, lastDay As Integer)
'Заполнение списка возможных значений для элементов ComboBox
With ufGetValues.cbxYear
.RowSource = ""
.AddItem "2010"
.AddItem "2011"
.AddItem "2012"
.AddItem "2013"
.AddItem "2014"
.AddItem "2015"
.AddItem "2016"
.AddItem "2017"
.AddItem "2018"
.AddItem "2019"
.AddItem "2020"
.AddItem "2021"
.AddItem "2022"
.AddItem "2023"
.AddItem "2024"
.AddItem "2025"
End With
With ufGetValues.cbxMonth
.RowSource = ""
.AddItem "ßíâàðü"
.AddItem "Ôåâðàëü"
.AddItem "Ìàðò"
.AddItem "Àïðåëü"
.AddItem "Ìàé"
.AddItem "Èþíü"
.AddItem "Èþëü"
.AddItem "Àâãóñò"
.AddItem "Ñåíòÿáðü"
.AddItem "Îêòÿáðü"
.AddItem "Íîÿáðü"
.AddItem "Äåêàáðü"
End With
ufGetValues.cbxYear.Value = curYear
ufGetValues.cbxMonth.Value = curMonth
ufGetValues.tbFirstDay.Value = firstDay
ufGetValues.tbLastDay.Value = lastDay
ufGetValues.Show
End Sub
В форме сделано добавление - при выборе пользователем названия месяца для него определяется последний день
Код
Public Sub cbxMonth_Change()
Select Case ufGetValues.cbxMonth.Value
Case "ßíâàðü"
ufGetValues.tbLastDay.Value = 31
Case "Ôåâðàëü"
ufGetValues.tbLastDay.Value = 29
Case "Ìàðò"
ufGetValues.tbLastDay.Value = 31
Case "Àïðåëü"
ufGetValues.tbLastDay.Value = 30
Case "Ìàé"
ufGetValues.tbLastDay.Value = 31
Case "Èþíü"
ufGetValues.tbLastDay.Value = 30
Case "Èþëü"
ufGetValues.tbLastDay.Value = 31
Case "Àâãóñò"
ufGetValues.tbLastDay.Value = 31
Case "Ñåíòÿáðü"
ufGetValues.tbLastDay.Value = 30
Case "Îêòÿáðü"
ufGetValues.tbLastDay.Value = 31
Case "Íîÿáðü"
ufGetValues.tbLastDay.Value = 30
Case "Äåêàáðü"
ufGetValues.tbLastDay.Value = 31
End Select
End Sub
Всё работает. При выборе месяца автоматом меняется номер последнего дня В обработчике кнопки "Ок" прописано присвоение значений элементов формы переменным в процедуре вызова
Код
Private Sub cbOk_Click()
curYear = ufGetValues.cbxYear.Value
curMonth = ufGetValues.cbxMonth.Value
firstDay = ufGetValues.tbFirstDay.Value
lastDay = ufGetValues.tbLastDay.Value
Unload ufGetValues
End Sub
Но, увы, ничего не происходит. Заданные значения по умолчанию не меняются (или не передаются обратно). Есть подозрение, что истина где-то очень близко, но мне не увидеть. Передача значений по умолчанию, ЕМНИП, сделана в VBA по ссылке, замена Private на Public тоже не помогла.
Добрый вечер, коллеги! Впервые столкнулся с проблемой: в пользовательской функции (UDF) не работают именованные диапазоны, имена работают. Т. е., имеется пользовательская функция вида:
Код
Option Explicit
Public Function lalala(a, b As Double) As Double
lalala = a + b
End Function
Есть именованные диапазоны Test1 (=Лист1!$A:$A), Test2 (=Лист1!$B:$B) и просто имена Test3 (=Лист1!$D$1) и Test4 (=Лист1!$E$1) При вызове функции с Test1 и Test2 в списке выдаётся ошибка #ЗНАЧ! При передаче имён, привязанных к конкретным ячейкам (Test3 и Test4) - всё работает. Как я понимаю, при вызове функции она не может привязать передаваемые ей имена диапазонов к конкретным строкам (как это было бы при использовании формулы вида "=Test1+Test2"). Есть мысли, как обойти эти ограничения?
Возникла задача следующего плана. Имеется excel-файл со списком гиперссылок на картинки вида: http://www.site.ru/image.php?f=NNNNN&m=MMMMM , где NNNNN и MMMMM- номера. Как средствами VBA можно пакетом скачать все картинки и разместить их в заданный каталог?
Прямые ссылки тут, скорее всего, не помогут. Они в закрытой области сайта. При наличии прямых ссылок я бы вообще не заморачивался с макросами, а просто выдрал бы картинки оффлайновым браузером.
Кусок прайса со ссылками в приложении. Там мой первый вариант решения (неработающий).
Спасибо! Попробовал, оригинал работает, в моём файле - не работает. Макрос запускается, но сохраняет только HTML. Есть мнение, что это происходит потому, что на картинки нет прямых ссылок, они вызываются через php-скрипт.
Уважаемые коллеги! Просьба помочь разобраться в одной проблеме. Имеется: Файл Excel (товарный каталог), в котором для каждой товарной позиции с номером типа NNNNN имеется, в отдельном столбце, название товара с гиперссылкой вида: http://sitename/image.php?f=NNNNN. При нажатии в открытом файле на гиперссылку, в браузере открывается соответствующая картинка (NNNNN.jpg). Задача: Программно реализовать получение по этой гиперссылке файла (картинки) и его сохранение в виде NNNNN.jpg. Спасибо!