Уважаемые форумчане! Подскажите пожалуйста! Есть книга (телефонный справочник), лежит на общем ресурсе, прав на изменения её у пользователей нет. Каждый раз при открытии книги я открываю определенную страницу, раскрываю группировку, и ctrl +f открываю окно поиска. Хотел автоматизировать, но не получается. Событие при открытии книги (сохраненное в общей книге макросов!) не срабатывает. Вопрос - как увидеть открытие книги из уже открытого приложения excel
Код
?Private Sub Workbook_Open()
' Если открыт телефонный справочник, открыть страницу КЭ, развернуть группировку
If ActiveWorkbook.Name = Тел - справ.xls Then
Sheets("КЭ").Select
ActiveSheet.Outline.ShowLevels RowLevels:=3
End If
End Sub
Здравствуйте, уважаемые форумчаене! Подскажите пожалуйста, как можно устранить проблему: после копирования - всавки больше 30 строк, код выполняется значительно медленнее и чем дальше тем медленнее. Копирую шаблонную строку с формулами и форматированием. Обновление экрана и пересчет формул отключены.
Здравствуйте, помогите пожалуйста собрать формулу, для подсчета количества кусочков строки разделенной ";" В прошлый раз для распила строки vikttur предложил =СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ("-"&$A1;"-";ПОВТОР(" ";50));50*(СТОЛБЕЦ(A1)-1)+50;50)) ' пробовал на основе её сделать массив, вложив в СЧЕТЗ, {=СЧЁТЗ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(";"&A$2;";";ПОВТОР(" ";300));300*(СТРОКА(A2)-СТРОКА($A$2))+300;300)))} получаетс всегда 1. В файле пример, как сейчас решаю, каждую ячейку одельно, а у меня болше сотни таких )))
Здравствуйте, для получения данных (лист отчета целиком) из другой книги собрал код, но он не работает не хочет рботать с открытой книгой. Общий доступ делать нельзя. Может нужно указать, что открыть только для чтения? 'Open Workbooks(Адрес6) For Input As #1 Но ошибка "subscript out of range"
Function IsBookOpen(wbFullName As String) As Boolean
Dim iFF As Integer
iFF = FreeFile
On Error Resume Next
Open wbFullName For Random Access Read Write Lock Read Write As #iFF
Close #iFF
IsBookOpen = Err
End Function
Код
Public Sub Получить6()
Dim Адрес6 As String
Dim Прграмма As Workbook
Dim Прил6 As Workbook
'On Error GoTo lable_1
Application.ScreenUpdating = False ' Отключаем “мерцание” окна
Set Прграмма = ThisWorkbook
Адрес6 = K:\Отчеты 1,2,3,4 кв\*.xls*"
If IsBookOpen(Адрес6) Then
Set Прил6 = Workbooks(Адрес6)
'Open Workbooks(Адрес6) For Input As #1
Else: Set Прил6 = Workbooks.Open(Адрес6)
End If
Application.DisplayAlerts = False
Прил6.Sheets("филиал 1").Copy After:=Прграмма.Worksheets(Прграмма.Worksheets.Count)
Application.DisplayAlerts = True
Прграмма.Sheets("Ожидаемые").Activate
Прил6.Close (False)
Application.ScreenUpdating = True ' Возвращаем режим обновления экрана при изменении
Exit Sub
MsgBox "Нет связи с базой данных," & Chr(13) _
& "возможно файл перемещен," & Chr(13) _
& "обратитесь к Андрею ))!!!", vbOKOnly + vbCritical
End Sub
Пока писал, додумался до макререкордера вот что получилось:
Код
Public Sub Получить6()
Dim Адрес6 As String
Dim Прграмма As Workbook
Dim Прил6 As Workbook
'On Error GoTo lable_1
Application.ScreenUpdating = False ' Отключаем “мерцание” окна
Set Прграмма = ThisWorkbook
Адрес6 = Прграмма.Worksheets("Const").Cells(1, 2) 'здесь должна быть маска K:\Отчеты 1,2,3,4 кв\*.xls*
Workbooks.Open Filename:=Адрес6, UpdateLinks:=0, Notify:=False
Set Прил6 = ActiveWorkbook
Прил6.Sheets("филиал 1").Copy After:=Прграмма.Worksheets(Прграмма.Worksheets.Count)
Прграмма.Sheets("Ожидаемые").Activate
Прил6.Close (False)
Application.ScreenUpdating = True ' Возвращаем режим обновления экрана при изменении
Exit Sub
MsgBox "Нет связи с базой данных," & Chr(13) _
& "возможно файл перемещен," & Chr(13) _
& "обратитесь к Андрею ))!!!", vbOKOnly + vbCritical
End Sub
Но и здесь проблема, если указать полный адрес, тогда все работае (только задает вопрос, типа Здесь уже работают, продолжить?), а если маску (файлы время от времени меняют, известно что в этой папке он один), то предупреждает что "файл открыт, попробуйте позже" и дальше ошибка на строчке Workbooks.Open Filename:=Адрес6, UpdateLinks:=0, Notify:=False
И как её открыть . если адрес указан маской? (для чтения и без вопросов [продолжить?])
Здравствуйте! Есть строка 12-41-102-2-55, нужно её на части (без "-") в отдельные ячейки, для дальнейшей работы со справочниками. В принципе решение есть и формулой (во вложении) и макросом, но как-то аккуратнее хочется, но как?
Код
Sub РасшифороватьКод()
Dim Лесхоз As String
Dim Лесничство As String
Dim Квартал As String
Dim Выдел As String
Dim Делянка As String
Dim ДлиннаСтроки As Integer
Dim Код As String
Код = "12-41-102-2-55" 'может содержать строковые, маска "*-*-*-*-*"
ДлиннаСтроки = Len(Код)
Лесхоз = Left(Код, InStr(Код, "-") - 1)
Код = Right(Код, ДлиннаСтроки - InStr(Код, "-"))
ДлиннаСтроки = Len(Код)
Лесничство = Left(Код, InStr(Код, "-") - 1)
Код = Right(Код, ДлиннаСтроки - InStr(Код, "-"))
ДлиннаСтроки = Len(Код)
Квартал = Left(Код, InStr(Код, "-") - 1)
Код = Right(Код, ДлиннаСтроки - InStr(Код, "-"))
ДлиннаСтроки = Len(Код)
Выдел = Left(Код, InStr(Код, "-") - 1)
Код = Right(Код, ДлиннаСтроки - InStr(Код, "-"))
Делянка = Код
End Sub
Здравствуйте! Помогите, пожалуйста "собрать" формулу для поиска ближайшего значения по 4 критериям. Нужно по вычисленному объему найти ближайший из перечисленных и получить диаметр при соблюдении еще 3 условий (вариант справочника, разряд высот, порода) Нашел в архиве похожий пример , http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=8&TID=30350&TITLE_SEO=30350&MID=316745#message316745 но не смог переделать под свой пример. Пока боролся с формулой, начал набирать макрос с таким запросом ( "SELECT max(ОбъемСтвола) FROM [ТСпр$] where Вариант= 2 AND Порода='С' AND РазрВысот= '3' AND ОбъемСтвола <= 0.674662791") , но он выдает ближайшее в одну сторону (меньшую или большую, зависит от знака), к тому-же, пока не получилось добавить к выбору (в селект) столбец (диаметр). В любом случае нужна формула, чтоб пересчитывалась при изменении аргументов "на лету".
Здравствуйте! Прошу помочь разобраться. Нужно получать инф. из корпоративного телефонного веб справочника в excel, Нашел много примеров как можно ввести информацию (логи, пароль, дата...) пробовал применить на практике, например такой от Doober
Код
Set Web1 = CreateObject("InternetExplorer.Application")
Web1.Visible = True
Web1.navigate "http://fssprus.ru/iss/ip/"
Do While Not (Web1.ReadyState = 4)
DoEvents
Loop
Set he = Web1.Document.body.all("is[last_name]")
he.Value = "Пупкин"
Set he = Web1.Document.body.all("is[first_name]")
he.Value = "Василий"
Set he = Web1.Document.body.all("is[patronymic]")
he.Value = "Иванович"
Set he = Web1.Document.body.all("is[date]")
he.Value = "01.01.1914"
Set he = Web1.Document.body.all("is[region_id][0]")
he.Value = "41" 'Камчатка
Set he = Web1.Document.body.all("sub_fiz")
he.Focus
he.Click
и такой Set oHTMLCollection = oDocument.getElementsByTagName("input") но, ничего не выходит. открывал переменную he или oHTMLCollection в окне Watch ничего не нашел. в лучшем случае Set he = Web1.Document.body.all() в переменной he я увидел item (4 штуки) но там input не было предполагаю что из html кода можно понять - как указать этот инпутбокс, сделал скрин, прикрепил, может кто направить меня на путь истинный)))