Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Гиперссылка для группы ячеек (2200 ячеек за 38 сек - долго) - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Гиперссылка для группы ячеек (2200 ячеек за 38 сек - долго) (Макросы/Sub)
Гиперссылка для группы ячеек (2200 ячеек за 38 сек - долго)
antycapral Дата: Понедельник, 26.12.2016, 13:07 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 62
Репутация: 5 ±
Замечаний: 0% ±

Excel 2016
Добрый день.
Есть часть "умной таблицы" столбик с данными на 2200 ячеек.
В каждой ячейке есть данные с номером поддона.

Накидал макрос который берет значение из ячейки и создает на эту ячейку гипер ссылку, добавляя к
"http://192.168.0.4/euromet/index.php?submit_form=031&input_roll_num=&input_poddon_num=" & значение из ячейки

Работает все хорошо и как надо. но вот время обработки более полу минуты.
Возможно ли как то ускорить мой рукоZадый код ?
[vba]
Код
    Range("Склад_ГП[№ поддона]").Select
    On Error Resume Next
    For i = 1 To Selection.Count

        TXT = ""
        TXT = Selection(i).Value
        ActiveSheet.Hyperlinks.Add Anchor:=Selection(i), Address:="http://192.168.0.4/euromet/index.php?submit_form=031&input_roll_num=&input_poddon_num=" & TXT
   
    Next i

    On Error GoTo 0
[/vba]
К сообщению приложен файл: 5457630.xlsm (87.6 Kb)


Сообщение отредактировал antycapral - Понедельник, 26.12.2016, 13:09
 
Ответить
СообщениеДобрый день.
Есть часть "умной таблицы" столбик с данными на 2200 ячеек.
В каждой ячейке есть данные с номером поддона.

Накидал макрос который берет значение из ячейки и создает на эту ячейку гипер ссылку, добавляя к
"http://192.168.0.4/euromet/index.php?submit_form=031&input_roll_num=&input_poddon_num=" & значение из ячейки

Работает все хорошо и как надо. но вот время обработки более полу минуты.
Возможно ли как то ускорить мой рукоZадый код ?
[vba]
Код
    Range("Склад_ГП[№ поддона]").Select
    On Error Resume Next
    For i = 1 To Selection.Count

        TXT = ""
        TXT = Selection(i).Value
        ActiveSheet.Hyperlinks.Add Anchor:=Selection(i), Address:="http://192.168.0.4/euromet/index.php?submit_form=031&input_roll_num=&input_poddon_num=" & TXT
   
    Next i

    On Error GoTo 0
[/vba]

Автор - antycapral
Дата добавления - 26.12.2016 в 13:07
Karataev Дата: Понедельник, 26.12.2016, 13:14 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 1334
Репутация: 533 ±
Замечаний: 0% ±

Excel
У меня макрос отработал за 3 секунды.
Предположу, что тормозят работу макроса процедуры "Intro" и "Outro".
Для данной задачи нет необходимости отключать обновление монитора, пересчет формул, т.к. макрос не вносит изменения на лист.
 
Ответить
СообщениеУ меня макрос отработал за 3 секунды.
Предположу, что тормозят работу макроса процедуры "Intro" и "Outro".
Для данной задачи нет необходимости отключать обновление монитора, пересчет формул, т.к. макрос не вносит изменения на лист.

Автор - Karataev
Дата добавления - 26.12.2016 в 13:14
antycapral Дата: Понедельник, 26.12.2016, 13:19 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 62
Репутация: 5 ±
Замечаний: 0% ±

Excel 2016
Закрыл весь эксель, закомментировал "Intro" и "Outro".
С 38 до 18 сек снизилось. Но ни как не 3 сек ((

Значит комп мой не особо шустрый... Или все таки код кривой

PS есть стандартная выгрузка по складу готовой продукции, этой частью кода я навожу красоту и удобство.
Эту часть кода пришлось вывести на отдельную кнопку.


Сообщение отредактировал antycapral - Понедельник, 26.12.2016, 13:21
 
Ответить
СообщениеЗакрыл весь эксель, закомментировал "Intro" и "Outro".
С 38 до 18 сек снизилось. Но ни как не 3 сек ((

Значит комп мой не особо шустрый... Или все таки код кривой

PS есть стандартная выгрузка по складу готовой продукции, этой частью кода я навожу красоту и удобство.
Эту часть кода пришлось вывести на отдельную кнопку.

Автор - antycapral
Дата добавления - 26.12.2016 в 13:19
Karataev Дата: Понедельник, 26.12.2016, 13:22 | Сообщение № 4
Группа: Проверенные
Ранг: Старожил
Сообщений: 1334
Репутация: 533 ±
Замечаний: 0% ±

Excel
Вообще (сейчас подумал) отключение обновления монитора надо использовать, ведь гиперссылка оформляется - добавляется синий цвет, подчеркивание.
А вот остальные отключения не используйте.
 
Ответить
СообщениеВообще (сейчас подумал) отключение обновления монитора надо использовать, ведь гиперссылка оформляется - добавляется синий цвет, подчеркивание.
А вот остальные отключения не используйте.

Автор - Karataev
Дата добавления - 26.12.2016 в 13:22
Pelena Дата: Понедельник, 26.12.2016, 13:25 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 19187
Репутация: 4421 ±
Замечаний: ±

Excel 365 & Mac Excel
У меня за 1,7 сек отработал
К сообщению приложен файл: 8650006.jpg (10.8 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеУ меня за 1,7 сек отработал

Автор - Pelena
Дата добавления - 26.12.2016 в 13:25
antycapral Дата: Понедельник, 26.12.2016, 13:31 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 62
Репутация: 5 ±
Замечаний: 0% ±

Excel 2016
На соседней машине проверил, 0,8 секунд
Ноут мой современной модели тормоз выходит, в 20 раз медленне проводит вычисления.
Я в шоке!

К сообщению приложен файл: 6175578.jpg (15.2 Kb)


Сообщение отредактировал antycapral - Понедельник, 26.12.2016, 13:31
 
Ответить
СообщениеНа соседней машине проверил, 0,8 секунд
Ноут мой современной модели тормоз выходит, в 20 раз медленне проводит вычисления.
Я в шоке!


Автор - antycapral
Дата добавления - 26.12.2016 в 13:31
_Boroda_ Дата: Понедельник, 26.12.2016, 13:48 | Сообщение № 7
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
У меня за 0,3515625
С отключение обновления за 0,3359375,
А если переписать немного, то в 10 раз меньше - за 0,03125
[vba]
Код
Sub ГиперссылкаГП()
    Application.ScreenUpdating = 0
    t = Timer
    Dim d_ As Range, dn_ As Range
    Set d_ = Range("Склад_ГП[№ поддона]")
    ad_ = "http://192.168.0.4/euromet/index.php?submit_form=031&input_roll_num=&input_poddon_num="
    On Error Resume Next
    For Each dn_ In d_
        z_ = dn_.Value
        ActiveSheet.Hyperlinks.Add Anchor:=z_, Address:=ad_ & z_
    Next dn_
    On Error GoTo 0
    MsgBox "Обработка данных продолжалась  " & Timer - t & " сек.", vbInformation
    Application.ScreenUpdating = 1
End Sub
[/vba]
К сообщению приложен файл: 5457630_2.xlsm (87.9 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеУ меня за 0,3515625
С отключение обновления за 0,3359375,
А если переписать немного, то в 10 раз меньше - за 0,03125
[vba]
Код
Sub ГиперссылкаГП()
    Application.ScreenUpdating = 0
    t = Timer
    Dim d_ As Range, dn_ As Range
    Set d_ = Range("Склад_ГП[№ поддона]")
    ad_ = "http://192.168.0.4/euromet/index.php?submit_form=031&input_roll_num=&input_poddon_num="
    On Error Resume Next
    For Each dn_ In d_
        z_ = dn_.Value
        ActiveSheet.Hyperlinks.Add Anchor:=z_, Address:=ad_ & z_
    Next dn_
    On Error GoTo 0
    MsgBox "Обработка данных продолжалась  " & Timer - t & " сек.", vbInformation
    Application.ScreenUpdating = 1
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 26.12.2016 в 13:48
antycapral Дата: Понедельник, 26.12.2016, 14:07 | Сообщение № 8
Группа: Пользователи
Ранг: Участник
Сообщений: 62
Репутация: 5 ±
Замечаний: 0% ±

Excel 2016
_Boroda_, извините. Но не создает гиперссылки.
Я удалил из вашего файла гиперссылки, макрос отработал очень быстро. Ссылки не создались.
 
Ответить
Сообщение_Boroda_, извините. Но не создает гиперссылки.
Я удалил из вашего файла гиперссылки, макрос отработал очень быстро. Ссылки не создались.

Автор - antycapral
Дата добавления - 26.12.2016 в 14:07
_Boroda_ Дата: Понедельник, 26.12.2016, 14:19 | Сообщение № 9
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Ну да,
[vba]
Код
ActiveSheet.Hyperlinks.Add Anchor:=dn_, Address:=ad_ & z_
[/vba]
Но только тогда за 0,3007813

[offtop]Может, давайте гиперссылки не будем создавать? Зато макрос по их созданию быстро отработает :D


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеНу да,
[vba]
Код
ActiveSheet.Hyperlinks.Add Anchor:=dn_, Address:=ad_ & z_
[/vba]
Но только тогда за 0,3007813

[offtop]Может, давайте гиперссылки не будем создавать? Зато макрос по их созданию быстро отработает :D

Автор - _Boroda_
Дата добавления - 26.12.2016 в 14:19
antycapral Дата: Понедельник, 26.12.2016, 14:21 | Сообщение № 10
Группа: Пользователи
Ранг: Участник
Сообщений: 62
Репутация: 5 ±
Замечаний: 0% ±

Excel 2016
_Boroda_, плачу от счастья)) 0,5 сек !
 
Ответить
Сообщение_Boroda_, плачу от счастья)) 0,5 сек !

Автор - antycapral
Дата добавления - 26.12.2016 в 14:21
Udik Дата: Понедельник, 26.12.2016, 14:22 | Сообщение № 11
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация: 192 ±
Замечаний: 0% ±

Excel 2016 х 64
У меня за 1,5 сек. Код почти как у Бороды
[vba]
Код

Sub ГиперссылкаГП()
Dim unoCell As Range
    t = Timer
    Application.ScreenUpdating = 0
    On Error Resume Next
    For Each unoCell In Range("Склад_ГП[№ поддона]")
        TXT = unoCell.Value
        ActiveSheet.Hyperlinks.Add Anchor:=unoCell, Address:="http://192.168.0.4/euromet/index.php?submit_form=031&input_roll_num=&input_poddon_num=" & TXT
        

    Next
    On Error GoTo 0
    Application.ScreenUpdating = True
    MsgBox "Обработка данных продолжалась  " & Timer - t & " сек.", vbInformation
    
End Sub

[/vba]
К сообщению приложен файл: 1993708.xlsm (87.7 Kb)


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com
 
Ответить
СообщениеУ меня за 1,5 сек. Код почти как у Бороды
[vba]
Код

Sub ГиперссылкаГП()
Dim unoCell As Range
    t = Timer
    Application.ScreenUpdating = 0
    On Error Resume Next
    For Each unoCell In Range("Склад_ГП[№ поддона]")
        TXT = unoCell.Value
        ActiveSheet.Hyperlinks.Add Anchor:=unoCell, Address:="http://192.168.0.4/euromet/index.php?submit_form=031&input_roll_num=&input_poddon_num=" & TXT
        

    Next
    On Error GoTo 0
    Application.ScreenUpdating = True
    MsgBox "Обработка данных продолжалась  " & Timer - t & " сек.", vbInformation
    
End Sub

[/vba]

Автор - Udik
Дата добавления - 26.12.2016 в 14:22
antycapral Дата: Понедельник, 26.12.2016, 14:28 | Сообщение № 12
Группа: Пользователи
Ранг: Участник
Сообщений: 62
Репутация: 5 ±
Замечаний: 0% ±

Excel 2016
Udik, 0,5 также !
 
Ответить
СообщениеUdik, 0,5 также !

Автор - antycapral
Дата добавления - 26.12.2016 в 14:28
antycapral Дата: Понедельник, 26.12.2016, 14:54 | Сообщение № 13
Группа: Пользователи
Ранг: Участник
Сообщений: 62
Репутация: 5 ±
Замечаний: 0% ±

Excel 2016
[offtop]
Что самое странное, два ноута мой Win_10 + 2016 офис , на втором Win_7 + 2013 офис , картина одна и та же.
Мой код от 20 до 40 сек
Код от Бороды 0,5 сек

Иду в "пешее" по другим машинам, везде все одинаково, оба кода обрабатывают за 0,8 - 1,5 сек, сильной разницы не видать.

Все выполняется на HP ProBook 430 G3 , логику не могу понять из за чего (оперативки везде больше чем надо)
 
Ответить
Сообщение[offtop]
Что самое странное, два ноута мой Win_10 + 2016 офис , на втором Win_7 + 2013 офис , картина одна и та же.
Мой код от 20 до 40 сек
Код от Бороды 0,5 сек

Иду в "пешее" по другим машинам, везде все одинаково, оба кода обрабатывают за 0,8 - 1,5 сек, сильной разницы не видать.

Все выполняется на HP ProBook 430 G3 , логику не могу понять из за чего (оперативки везде больше чем надо)

Автор - antycapral
Дата добавления - 26.12.2016 в 14:54
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Гиперссылка для группы ячеек (2200 ячеек за 38 сек - долго) (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!