Коллекции в 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
Изменено: - 19.03.2023 14:35:52
Коллекции в VBA. Создание коллекции из пересекающихся значений 2 других коллекций., Коллекции в VBA. Создание коллекции из пересекающихся значений 2 других коллекций.
Пользователь
Сообщений: Регистрация: 20.05.2015
18.03.2023 21:10:49
New, можно конечно использовать Temp = "", но сути это не меняет. Я работаю с Temp, как со строкой. Ничто не мешает использовать в типе String цифры, да и оператор <> используется далеко не только с числовыми значениями. Я думаю, что тут нет проблемы.
Коллекции в VBA. Создание коллекции из пересекающихся значений 2 других коллекций., Коллекции в VBA. Создание коллекции из пересекающихся значений 2 других коллекций.
Пользователь
Сообщений: Регистрация: 20.05.2015
18.03.2023 16:25:19
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 других коллекций.
Пользователь
Сообщений: Регистрация: 20.05.2015
18.03.2023 00:47:28
Здравствуйте! Задача стоит создать коллекцию значений (строки) из пересекающихся значений двух других коллекций. То есть имеем коллекцию 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, Страница загружается динамически, сначала идет "заставка"
Пользователь
Сообщений: Регистрация: 20.05.2015
11.02.2022 00:10:54
Игорь, спасибо за ответ! А другими методами VBA возможно решить эту задачу?
Получение HTML кода после полной загрузки страницы средствами VBA, Страница загружается динамически, сначала идет "заставка"
Пользователь
Сообщений: Регистрация: 20.05.2015
10.02.2022 22:48:08
Здравствуйте! В продолжение темы. Время идет и сайт регулярно модернизируется. Парсер конечно же перестает работать. Столкнулся с новой проблемой, которую сам не смог решить. И так, суть проблемы. Имеем тот же сайт Методами, которые описаны выше в топе, получаю исходный код страницы. Но проблема в том, что он не содержит нужные мне данные и проблема не решается даже при полной прогрузке страницы. Для понимания и наглядности, мне нужны данные, которые содержатся в следующих таблицах Код элемента у них такой -тег <table> (содержит все необходимые данные): Но в коде страницы это выглядит так:
То есть контейнер </ div id="odds"></div> открылся и тут же закрылся, не предоставив никаких данных парсеру. На сколько я понимаю, дело в скриптах. Собственно вопрос в том, возможно ли средствами VBA получить полный код страницы? Буду признателен за любую помощь и замечания.
Получение HTML кода после полной загрузки страницы средствами VBA, Страница загружается динамически, сначала идет "заставка"
Пользователь
Сообщений: Регистрация: 20.05.2015
15.01.2020 14:46:44
Спасибо, действительно не прогружается сайт дальше заставки в IE.
Получение HTML кода после полной загрузки страницы средствами VBA, Страница загружается динамически, сначала идет "заставка"
Пользователь
Сообщений: Регистрация: 20.05.2015
15.01.2020 10:56:17
Игорь, добрый день! С вашей помощью код работал долгое время без проблем. Вчера-сегодня страница не прогружается (на сайте видимых проблем нет), опять получаю "заставку". Не подскажете в чем может быть проблема?
Изменено: - 15.01.2020 10:57:47
Получение HTML кода после полной загрузки страницы средствами VBA, Страница загружается динамически, сначала идет "заставка"
Получение HTML кода после полной загрузки страницы средствами VBA, Страница загружается динамически, сначала идет "заставка"
Пользователь
Сообщений: Регистрация: 20.05.2015
31.08.2019 20:52:14
Всем добрый вечер! Есть сайт . Пытаюсь парсить 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
Пользователь
Сообщений: Регистрация: 20.05.2015
16.06.2019 22:23:57
Благодарю вас.
DOM. Получение требуемого значения атрибута из элемента, Получить ссылку из атрибута href
DOM. Получение требуемого значения атрибута из элемента, Получить ссылку из атрибута href
Пользователь
Сообщений: Регистрация: 20.05.2015
16.06.2019 17:23:04
Цитата
Андрей VG написал: И, если вы ищете тег td, то не думаю, что у него есть атрибут href
Да, вы правы, у тега td нет атрибута href. Но в контейнере <td></td> есть тег <a>, в нем нужная ссылка. Целиком больше 100 кб, скрин с приложил.
DOM. Получение требуемого значения атрибута из элемента, Получить ссылку из атрибута href
Пользователь
Сообщений: Регистрация: 20.05.2015
16.06.2019 16:50:21
День добрый. Не силен с 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
Логика такая: в HTML таблице нахожу нужную строку, в ней ищу элементы (столбцы <td>) с классом "score-time score", а такой там один, далее пытаюсь получить из него ссылку. Генерирует ошибку object doesn't support this property or method. Знаю, что проблема начинается с метода getElementsByClassName("score-time score")(0). Но найти решение пока не выходит. Думаю ответ на поверхности, может кто подскажет.
Поиск дубликатов и их нумерация, Поиск дубликатов в определенном интервале\диапазоне и их нумерация
Пользователь
Сообщений: Регистрация: 20.05.2015
25.09.2017 21:03:02
Возможное решение.
Проверка данных в ячейке, В ячейке забита формула. Необходимо, чтобы при появлении в этой ячейке отрицательного значения, эксель выводил предупреждение.
Пользователь
Сообщений: Регистрация: 20.05.2015
17.03.2016 18:01:20
В принципе возможно, но хотелось бы понять, возможно ли получить сообщение на весь экран, что реализовано функцией MsgBox в VBA.
Проверка данных в ячейке, В ячейке забита формула. Необходимо, чтобы при появлении в этой ячейке отрицательного значения, эксель выводил предупреждение.
Пользователь
Сообщений: Регистрация: 20.05.2015
17.03.2016 17:55:35
Добрый вечер! Суть проблемы в описании! Проверка данных удовлетворяет только при вводе данных в ячейку, но в данном случае ячейка с формулой и зависит от значений в других ячейках. Было бы замечательно, если можно было бы обойтись без макросов.
Гиперссылка на ячейку в книге с переносом значения, по гиперссылке перейти на ячейку на другом листе и изменить ее значение
Пользователь
Сообщений: Регистрация: 20.05.2015
11.08.2015 21:04:19
Добрый вечер друзья! Предположим есть список с названиями чего-либо. Все они являются гиперссылками и перемещают на другой лист книги в ячейку А1. Можно ли сделать так, чтобы ячейке А1 присваивалось имя нажатой гиперссылки. Нужно это для того, чтобы далее использовать значение этой ячейки на этом листе. Вопрос: как это сделать? Заранее спасибо!
Поиск значения в таблице данных. ВПР, ПОИСКПОЗ и ИНДЕКС в классическом виде не подходят., Из таблицы требуется вытащить значение, соответствующее двум параметрам.
Пользователь
Сообщений: Регистрация: 20.05.2015
11.08.2015 12:55:55
Добрый день! Сформулировать толково проблематично, поэтому прикладываю файл, где есть условие и конечный результат. Первый параметр - номер строки (выбирается) из списка (ячейка залитая желтым). Второй параметр в таблице с результатами (несколько констант), соответствующее ему значение нужно найти в таблице данных в заданной строке. Таблица приведена для примера, в реальности она будет намного больше. Заранее спасибо всем откликнувшимся!
Расчет количества дней между матчами команды, для каждой команды найти количество дней между текущим ее матчем и предыдущим
Пользователь
Сообщений: Регистрация: 20.05.2015
25.05.2015 13:29:14
Решение придумал сам. Заходим, смотрим, комментируем. Может быть формулу можно попроще придумать... Можно добавлять новые строки - все работает.
Расчет количества дней между матчами команды, для каждой команды найти количество дней между текущим ее матчем и предыдущим
Пользователь
Сообщений: Регистрация: 20.05.2015
20.05.2015 11:15:34
Добрый день! У меня такая задача: требуется определить количество дней между текущим и последним матчем команды, независимо от того, где она играла последний матч, в гостях или дома. Если команда играет дома, то количество дней ставиться в столбце "отдых хоз", если в гостях, то в столбце "отдых гостей". Если в списке это первый матч команды, то в таблице отдых команды проставляется "-". Таблица будет все время дополняться новыми матчами, но по дате они будут позже последней даты в таблице. Подскажите, можно ли реализовать эту задачу с помощью формул? Без VBA. Файл прикладываю.