Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Коллекции в VBA. Создание коллекции из пересекающихся значений 2 других коллекций., Коллекции в VBA. Создание коллекции из пересекающихся значений 2 других коллекций.
 
Юрий М, еще интереснее в таком варианте.
Код
Sub qqq()
Dim a As String, b As Integer, x
    a = 2
    b = 3
    x = a + b
    MsgBox x
End Sub
Изменено: Betting - 19.03.2023 14:35:52
Коллекции в VBA. Создание коллекции из пересекающихся значений 2 других коллекций., Коллекции в VBA. Создание коллекции из пересекающихся значений 2 других коллекций.
 
New, можно конечно использовать Temp = "", но сути это не меняет. Я работаю с Temp, как со строкой. Ничто не мешает использовать в типе String цифры, да и оператор <> используется далеко не только с числовыми значениями. Я думаю, что тут нет проблемы.
Коллекции в VBA. Создание коллекции из пересекающихся значений 2 других коллекций., Коллекции в VBA. Создание коллекции из пересекающихся значений 2 других коллекций.
 
New, спасибо! Немного разобрался. Дело в функции, а точнее в этой строке кода Set Obj = Coin(Item). Как я понял, Coin(Item) возвращает тип данных String, соответственно Obj всегда имеет значение Nothing. Ваша функция работает так, как нужно. Я ее переписал по другому, тоже рабочий вариант (см.ниже). Не совсем понял почему: "'имейте ввиду, что Col_1 может быть меньше, чем Col_2, тогда цикл неверный". Мы проходим по первой коллекции по всем элементам, сравниваем, нет ли во второй коллекции такого же, и если есть, то добавляем в третью. Не вижу ошибки в цикле.
Код
Private Function IsInCollection(Coin As Collection, _
    ByVal Key As String) As Boolean
    Dim Temp As String
    Temp = 0
    On Error Resume Next
    Temp = Coin.Item(Key)
    If Temp <> 0 Then IsInCollection = True
    On Error GoTo 0
End Function
Коллекции в VBA. Создание коллекции из пересекающихся значений 2 других коллекций., Коллекции в VBA. Создание коллекции из пересекающихся значений 2 других коллекций.
 
Здравствуйте! Задача стоит создать коллекцию значений (строки) из пересекающихся значений двух других коллекций. То есть имеем коллекцию Col_1 и Col_2, а создаем Col_sum, которая будет содержать только те элементы, которые содержатся и в Col_1 и Col_2. Почему то Col_sum не содержит элементов, хотя пересекающиеся элементы точно есть. Может быть в приведенном куске кода ошибка есть. Прошу совета.

Код
   On Error Resume Next
    For Each MyElement In Col_1
        If IsInCollection(Col_2, CStr(MyElement)) Then
            Col_sum.Add CStr(MyElement), CStr(MyElement)
        End If
    Next MyElement
    On Error GoTo 0

Код
Private Function IsInCollection(Coin As Object, _
    Item As String) As Boolean
    Dim Obj As Object
    On Error Resume Next
    Set Obj = Coin(Item)
    IsInCollection = Not Obj Is Nothing
End Function
Получение HTML кода после полной загрузки страницы средствами VBA, Страница загружается динамически, сначала идет "заставка"
 
Игорь, спасибо за ответ! А другими методами VBA возможно решить эту задачу?
Получение HTML кода после полной загрузки страницы средствами VBA, Страница загружается динамически, сначала идет "заставка"
 
Здравствуйте! В продолжение темы. Время идет и сайт регулярно модернизируется. Парсер конечно же перестает работать. Столкнулся с новой проблемой, которую сам не смог решить. И так, суть проблемы. Имеем тот же сайт https://www.nowgoal5.com/football/6in1/?id=23
Методами, которые описаны выше в топе, получаю исходный код страницы. Но проблема в том, что он не содержит нужные мне данные и проблема не решается даже при полной прогрузке страницы. Для понимания и наглядности, мне нужны данные, которые содержатся в следующих таблицах

Код элемента у них такой -тег <table> (содержит все необходимые данные):

Но в коде страницы это выглядит так:


То есть контейнер </ div id="odds"></div> открылся и тут же закрылся, не предоставив никаких данных парсеру. На сколько я понимаю, дело в скриптах.
Собственно вопрос в том, возможно ли средствами VBA получить полный код страницы? Буду признателен за любую помощь и замечания.
Получение HTML кода после полной загрузки страницы средствами VBA, Страница загружается динамически, сначала идет "заставка"
 
Спасибо, действительно не прогружается сайт дальше заставки в IE.
Получение HTML кода после полной загрузки страницы средствами VBA, Страница загружается динамически, сначала идет "заставка"
 
Игорь, добрый день! С вашей помощью код работал долгое время без проблем. Вчера-сегодня страница не прогружается (на сайте видимых проблем нет), опять получаю "заставку". Не подскажете в чем может быть проблема?
Изменено: Betting - 15.01.2020 10:57:47
Получение HTML кода после полной загрузки страницы средствами VBA, Страница загружается динамически, сначала идет "заставка"
 
Спасибо большое! Работает, воспользовался функцией.
Получение HTML кода после полной загрузки страницы средствами VBA, Страница загружается динамически, сначала идет "заставка"
 
Всем добрый вечер! Есть сайт http://www.nowgoal.com/6in1.aspx?id=31. Пытаюсь парсить HTML код, но проблема в том, что пока данные на сайте подгружаются, HTML код не содержит нужных данных, а с помощью своего кода получаю именно HTML-код "заставки". Вопрос в том, как получить уже "прогруженный" код страницы.
Код
Sub primer()

Dim my_url As String
Dim html_doc As Variant, xml_obj As Variant
Dim Tag_tab As Object
my_url = "http://www.nowgoal.com/6in1.aspx?id=31"

Set html_doc = CreateObject("htmlfile")
Set xml_obj = CreateObject("MSXML2.XMLHTTP")

xml_obj.Open "GET", my_url, False
xml_obj.send
html_doc.body.InnerHTML = xml_obj.responseText
Set xml_obj = Nothing
MsgBox html_doc.body.getElementsByTagName("table")(0).getElementsByTagName("tr")(0).innertext
End Sub
DOM. Получение требуемого значения атрибута из элемента, Получить ссылку из атрибута href
 
Благодарю вас.
DOM. Получение требуемого значения атрибута из элемента, Получить ссылку из атрибута href
 
Цитата
Андрей VG написал:
По картинке не скажу как
Может ссылка поможет https://int.soccerway.com/teams/brazil/sociedade-esportiva-palmeiras/310/matches/
Добрался я до нужного значения ссылки видоизменив строку с точным указанием необходимого элемента <td> (4):
Код
mas(r, 6) = .item(r).getElementsByTagName("td")(4).getElementsByTagName("a")(0).GetAttribute("href")
Хочется понять почему такой вариант не работает:
Код
mas(r, 6) = .item(r).getElementsByClassName("score-time score")(0).getElementsByTagName("a")(0).GetAttribute("href")
Спасибо!
Изменено: Betting - 16.06.2019 17:59:45
DOM. Получение требуемого значения атрибута из элемента, Получить ссылку из атрибута href
 
Цитата
Андрей VG написал:
И, если вы ищете тег td, то не думаю, что у него есть атрибут href
Да, вы правы, у тега td нет атрибута href. Но в контейнере <td></td> есть тег <a>, в нем нужная ссылка. Целиком больше 100 кб, скрин с приложил.
DOM. Получение требуемого значения атрибута из элемента, Получить ссылку из атрибута href
 
День добрый. Не силен с DOM, но разбираюсь потихоньку. Застрял с такой проблемой.
Код
Sub Generic_Match_List()
    Dim i As Integer, r As Integer, c As Integer
    Dim mas As Variant
    Dim my_url As String
    For i = 1 To Range("Список[Ссыль]").Count
        my_url = Range("Список[Ссыль]")(i) & "/matches/"
        Set html_doc = CreateObject("htmlfile")
        Set xml_obj = CreateObject("MSXML2.XMLHTTP")
        xml_obj.Open "GET", my_url, False
        xml_obj.send
        html_doc.body.InnerHTML = xml_obj.responseText
        Set xml_obj = Nothing
        'Получение массива с данными
        With html_doc.body.getElementsByTagName("table")(0).getElementsByTagName("tr")
            ReDim mas(.Length, 6)
            For r = 1 To .Length
                For c = 0 To 5
                    mas(r, c) = .item(r).Cells(c).innertext
                    Debug.Print mas(r, c)
                Next c
                mas(r, 6) = .item(r).getElementsByClassName("score-time score")(0).GetAttribute("href")
                Debug.Print mas(r, 6)
            Next r
        End With
    Next i
End Sub
Ошибку создает строка
Код
mas(r, 6) = .item(r).getElementsByClassName("score-time score")(0).GetAttribute("href")
Логика такая: в HTML таблице нахожу нужную строку, в ней ищу элементы (столбцы <td>) с классом "score-time score", а такой там один, далее пытаюсь получить из него ссылку. Генерирует ошибку object doesn't support this property or method. Знаю, что проблема начинается с метода getElementsByClassName("score-time score")(0). Но найти решение пока не выходит. Думаю ответ на поверхности, может кто подскажет.
Поиск дубликатов и их нумерация, Поиск дубликатов в определенном интервале\диапазоне и их нумерация
 
Возможное решение.
Проверка данных в ячейке, В ячейке забита формула. Необходимо, чтобы при появлении в этой ячейке отрицательного значения, эксель выводил предупреждение.
 
В принципе возможно, но хотелось бы понять, возможно ли получить сообщение на весь экран, что реализовано функцией MsgBox в VBA.
Проверка данных в ячейке, В ячейке забита формула. Необходимо, чтобы при появлении в этой ячейке отрицательного значения, эксель выводил предупреждение.
 
Добрый вечер! Суть проблемы в описании! Проверка данных удовлетворяет только при вводе данных в ячейку, но в данном случае ячейка с формулой и зависит от значений в других ячейках.  Было бы замечательно, если можно было бы обойтись без макросов.
Гиперссылка на ячейку в книге с переносом значения, по гиперссылке перейти на ячейку на другом листе и изменить ее значение
 
Добрый вечер друзья! Предположим есть список с названиями чего-либо. Все они являются гиперссылками и перемещают на другой лист книги в ячейку А1. Можно ли сделать так, чтобы ячейке А1 присваивалось имя нажатой гиперссылки. Нужно это для того, чтобы далее использовать значение этой ячейки на этом листе. Вопрос: как это сделать? Заранее спасибо!
Поиск значения в таблице данных. ВПР, ПОИСКПОЗ и ИНДЕКС в классическом виде не подходят., Из таблицы требуется вытащить значение, соответствующее двум параметрам.
 
Добрый день!
Сформулировать толково проблематично, поэтому прикладываю файл, где есть условие и конечный результат.
Первый параметр - номер строки (выбирается) из списка (ячейка залитая желтым). Второй параметр в таблице с результатами (несколько констант), соответствующее ему значение нужно найти в таблице данных в заданной строке.
Таблица приведена для примера, в реальности она будет намного больше.
Заранее спасибо всем откликнувшимся!
Расчет количества дней между матчами команды, для каждой команды найти количество дней между текущим ее матчем и предыдущим
 
Решение придумал сам. Заходим, смотрим, комментируем. Может быть формулу можно попроще придумать..:D. Можно добавлять новые строки - все работает.
Расчет количества дней между матчами команды, для каждой команды найти количество дней между текущим ее матчем и предыдущим
 
Добрый день!
У меня такая задача: требуется определить количество дней между текущим  и последним матчем команды, независимо от того, где она играла последний матч, в гостях или дома. Если команда играет дома, то количество дней ставиться в столбце "отдых хоз", если в гостях, то в столбце "отдых гостей". Если в списке это первый матч команды, то в таблице отдых команды проставляется "-". Таблица будет все время дополняться новыми матчами, но по дате они будут позже последней даты в таблице.
Подскажите, можно ли реализовать эту задачу с помощью формул? Без VBA. Файл прикладываю.
Страницы: 1
Наверх