Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/21: Рейтинг темы: голосов - 21, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 25.09.2015
Сообщений: 49
1

Ссылка значений из ячеек Excel в Браузер

26.10.2015, 14:11. Показов 3860. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нашел вот такой макрос
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
Sub SearchValuesInWeb()
    ' Макрос открывает в выбранном браузере результаты поиска значений из ячеек
    ' поиск производится в Google
 
    On Error Resume Next: Err.Clear
    browser$ = Application.CommandBars.ActionControl.Tag    ' читаем параметр из свойства TAG
    If Err Then Exit Sub    ' запуск не из контекстного меню
 
    maxCellsCount = 20    ' больше 20 ячеек - отказываемся от запуска поиска
 
    Dim coll As New Collection
    ' берем только непустые уникальные значения из выделенного диапазона ячеек
    Dim ra As Range: Set ra = Intersect(Selection, ActiveSheet.UsedRange)
    arr = ra.Value: If ra.Cells.Count = 1 Then arr = Array(ra(1))
    For Each Item In arr
        If Len(Trim(Item)) Then coll.Add CStr(Trim(Item)), CStr(Trim(Item))
        If coll.Count > maxCellsCount Then Exit For
    Next
 
    ' если случайно запустить поиск тысячи значений - комп подвиснет надолго...
    If coll.Count > maxCellsCount Then
        msg = "Количество значений для поиска провысило ограничение в " & maxCellsCount & " ячеек!"
        MsgBox msg, vbExclamation, "Слишком много значений - поиск отменяется"
        Exit Sub
    End If
 
    ' формируем путь к выбранному браузеру (в реестре нужную информацию выкопать сложно...)
    ' не факт, что быдет работать на всех компах (программы могли быть установлены в другие папки)
    Select Case browser$    ' "Internet Explorer", "Mozilla Firefox", "Opera", "Google Chrome"
        Case "Internet Explorer"
            Path$ = """" & Environ("ProgramFiles") & "\Internet Explorer\IEXPLORE.EXE" & """"
        Case "Mozilla Firefox"
            Path$ = """" & Environ("ProgramFiles") & "\Mozilla Firefox\firefox.exe" & """ -new-tab "
        Case "Opera"
            Path$ = """" & Environ("ProgramFiles") & "\Opera\opera.exe" & """"
        Case "Google Chrome"
            Path$ = """" & Environ("USERPROFILE") & "\Local Settings\Application Data" _
                    & "Google\Chrome\Application\chrome.exe" & """"
    End Select
 
    ' проверяем существование исполняемого файла браузера
    Path2$ = Path$: If Dir(Split(Path$, Chr(34))(1), vbNormal) = "" Then Path2$ = ""
 
    For Each Item In coll    ' перебираем все уникальные значения ячеек
        ' формируем поисковую ссылку для Google
        n = n + 1: link$ = """" & "http://www.google.ru/search?hl=ru&newwindow=1&q=" & Item & """"
 
        If browser$ = "" Then    ' открываем ссылку в браузере "по-умолчанию"
            CreateObject("wscript.shell").Run link$
 
        Else    ' запускаем нужный браузер
            If Len(Path2$) Then    ' если exe-файл нужного браузера найден, то
                ' запускаем браузер для открытия ссылки
                CreateObject("wscript.shell").Run Path$ & " " & link$
            Else
                ' выводим сообщение, что браузер не найден
                Debug.Print "Browser " & browser$ & " not found: " & Path$
            End If
        End If
 
        ' после первой ссылки дожидаемся запуска браузера (1 секунду)
        If n = 1 Then Application.Wait Now + 1 / 86400
    Next
End Sub
Не устраивает то что в результате его выполнения каждое значение ищется в отдельной вкладке браузера. А нужно чтобы значения из выделенных ячеек писались через or и искались примерно во в таком виде в Google например " А1 or B1 or C1" . Что нужно изменить, что бы так получилось. Заранее спс
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.10.2015, 14:11
Ответы с готовыми решениями:

Сумма значений выделенных ячеек (Excel)
помогите пожалуйста! совсем не помню как программировать в экселе. надо сделать так, чтобы...

Макрос всевозможных перестановок значений ячеек /Excel
требуется написать следующий макрос: Для выделенных ячеек строки вывести под ними все возможные...

Сравнение значений ячеек на разных листах Excel и их перенос
Доброго Вам времени суток, уважаемие знатоки!!! Нужна Ваша помощь и подсказки. На листе 1 есть...

Оптимизация цикла поиска значений ячеек Excel (кодом из Access)
Получил "вечный цикл" на коде. Задача изначально: определить номер строки, в которой совпадут два...

5
90 / 37 / 14
Регистрация: 03.11.2010
Сообщений: 429
26.10.2015, 15:43 2
В цикле For Each "просуммируйте" Item & "+" & Item & ...
А потом уже один раз передайте в браузер.
0
0 / 0 / 0
Регистрация: 25.09.2015
Сообщений: 49
26.10.2015, 15:54  [ТС] 3
А можете этот кусочек исправленным прислать, а то не очень понял что вы хотите сказать
0
90 / 37 / 14
Регистрация: 03.11.2010
Сообщений: 429
26.10.2015, 16:14 4
не на чем проверить
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
link$ = """" & "http://www.google.ru/search?hl=ru&newwindow=1&q="
For Each Item In coll    ' перебираем все уникальные значения ячеек
        ' формируем поисковую ссылку для Google
    link$ = link$ & Item & "+"
Next
link$ = link$ & """"
 
If browser$ = "" Then    ' открываем ссылку в браузере "по-умолчанию"
    CreateObject("wscript.shell").Run link$
 
Else    ' запускаем нужный браузер
    If Len(Path2$) Then    ' если exe-файл нужного браузера найден, то
        ' запускаем браузер для открытия ссылки
        CreateObject("wscript.shell").Run Path$ & " " & link$
    Else
        ' выводим сообщение, что браузер не найден
        Debug.Print "Browser " & browser$ & " not found: " & Path$
    End If
End If
это вставить вместо последнего цикла вашего кода.
0
0 / 0 / 0
Регистрация: 25.09.2015
Сообщений: 49
26.10.2015, 17:29  [ТС] 5
Все равно вставляет первую ячейку только добавляет "+" в строку поиска
=(
0
90 / 37 / 14
Регистрация: 03.11.2010
Сообщений: 429
30.10.2015, 08:09 6
1) вставте в 7 строку- msgbox link$
и посмотрите что Вы отсылаете браузеру
2) введите в поиск гугла несколько значений из ячеек и посмотрите полученную адресную строку в браузере
3) сравните с отсылаемой и откорректируйте код.
если будут проблемы приведите пример - две строки ссылки
0
30.10.2015, 08:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.10.2015, 08:09
Помогаю со студенческими работами здесь

Очистка значений ячеек макросом постоянно обновляемых ячеек
Здравствуйте, уважаемые) Помогите решить такую задачу. Есть некий журнал, нужно заполнять...

Сумма значений ячеек Excel
Здравствуйте, возникла следующая проблема. При сложении значений двух ячеек из Excel,...

Чтение значений ячеек Excel
Добрый день всем. Прошу помочь в решении задачи. В Сети много информации по работе с Excel через...

Считывание значений ячеек Excel и построение диаграммы
Как осуществить открытие файла формата xlsx в win программе, да так что бы еще каждые данные...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru