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

Страницы: 1 2 След.
Извлечь из текста числа: возраст (2 значное) и номер телефона (11 значное)
 
Отлично! Спасибо!
Извлечь из текста числа: возраст (2 значное) и номер телефона (11 значное)
 
Спасибо огромное. Я так понял, строка Pattern = "\d{1,2}(?=\sлет)"  находит цифру 1 или 2 знаков перед "лет" Только там всегда будет  именно 2 значное число и иногда не будет "лет", иногда будет просто цифра, всегда в промежутке с 17 по 35
Извлечь из текста числа: возраст (2 значное) и номер телефона (11 значное)
 
Есть ячейка, где содержится текст примерно такого вида:
"Иванова Ульяна Викторовна, 89821234567, Тюмень 17 лет" порядок и длина текста всё время разные

Как вывести в отдельные 2 ячейки телефон и возраст? Есть ли формула? Либо макросом тоже наверное можно, если есть вариант попроще, а то с массивами ещё не разобрался
Как спарсить определённую строчку HTML кода в VBA, Нужно незаметно скопировать с сайта одну цифру в переменную VBA или хотя-бы в буфер обмена.
 
Всем спасибо за дельные ответы. К сожалению в IE нужный сайт не работает. Придумал для яндекс браузера деревянное решение при активном окне браузера:
Код
SendKeys "^{s}" 'сохранить страницу полностью

Sleep (300)

SendKeys "{ENTER}" 'подтвердить сохранение по такому то адресу

Sleep (100)

SendKeys "%{Д}" 'заменить ли прошлый файл? - ДА
ну а потом открыть этот файл прямо в EXEL
Код
Workbooks.Open Filename:= _
        "D:\!Users\User1\Documents\Бизнес\Porno_negrov.com.html"
у меня уже нужная инфа строго в определённой ячейке там можно формулой извлечь с помощью =ПРАВСИМВ(A42;5)
Изменено: Danya-asg - 13.11.2019 00:12:50
Как спарсить определённую строчку HTML кода в VBA, Нужно незаметно скопировать с сайта одну цифру в переменную VBA или хотя-бы в буфер обмена.
 
Настоящий сайт открыто назвать не могу по определённым причинам, могу в личку отправить, да и всё равно там нужные данные без авторизации не высвечиваются. Я наивно думал, что есть какой-то универсальный способ стащить данные из браузера (если они не зашифрованы) из определённой строки кода, или хотя бы весь код отображаемой страницы без выделения всего экрана. Ведь браузер как-то понимает что там надо определённую цифру в определённом месте написать, и ведь там именно текст, а не картинка с текстом. Может какой-нибудь плагин бывает для мазилы/хрома и т.д., который упрощает задачу и что-нибудь копирует в обновляемый текстовый файл? Мне такой найти не удалось, но по идее наверняка что-то подобное придумали.
Как спарсить определённую строчку HTML кода в VBA, Нужно незаметно скопировать с сайта одну цифру в переменную VBA или хотя-бы в буфер обмена.
 
Это понятно. Дело в том что простой запрос по URL не подходит, т.к. информация на нужной странице зависит от моего предыдущего поведения на этой странице, тоесть надо именно влезть в уже открытый браузер, а не подключиться к сайту заново.
Как спарсить определённую строчку HTML кода в VBA, Нужно незаметно скопировать с сайта одну цифру в переменную VBA или хотя-бы в буфер обмена.
 
Есть сайт, где отображаются определённые цифры, например изменения цен на нефть. В яндекс браузере при нажатии CTRL+SHIFT+С, справа открывается HTML код, где на определённой строчке нужная мне цифра, которая периодически меняется, но строчка остаётся одной и той же.
Как бы её передавать в VBA в нужный момент. Важно, чтобы для сайта это выглядело так, как будто я просто сам сижу через браузер и не использую какие-либо программы.
Пока единственное что придумал, это через VBA тыкать по экрану, делать через Sendkeys Ctrl+ A, а потом CTRL+C и уже потом из буфера обмена искать нужные данные, но это как-то тупо. Кто-нибудь знает варианты поумнее? Или хотя-бы в какую сторону думать?
переменная в объявлении массив, можно ли как-то вставить в объявление размера фиксированного массива переменную, чтобы не выдавало ошибку?
 
Только вот интересно. А почему при объявлении массива не катит, а когда ReDim - то так можно?
переменная в объявлении массив, можно ли как-то вставить в объявление размера фиксированного массива переменную, чтобы не выдавало ошибку?
 
Отлично!
переменная в объявлении массив, можно ли как-то вставить в объявление размера фиксированного массива переменную, чтобы не выдавало ошибку?
 
пример:
Код
Dim arr(1 To 900000, 1 To 3)
работает
Код
st = 900000
Dim arr(1 To st, 1 To 3)
выдаёт ошибку
Клик при зажатом CTRL с помощью VBA
 
Спасибо! Накопал:
Добавляем вначале строки:
Код
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
'bVk - Виртуальный код клавиши для имитации нажатия и отпускания клавиши.
'bScan - Зарезервировано -- установлено в 0.
'dwFlags - Комбинация следующих флагов определяет различные способы имитации:
'KEYEVENTF_EXTENDEDKEY - Префикс скэн-кода с префиксным байтом, имеющим значение &HE0.
'KEYEVENTF_KEYUP - Клавиша, указанная в bVk будет отпущена. Если этот флажок не определен, клавиша будет нажата.
'dwExtraInfo - Дополнительное 32-разрядное значение, связанное с событием клавиатуры.
Const KEYEVENTF_KEYUP = &H2 'событие отпускания клавиши
Const VK_CONTROL = &H11 'клавиша Ctrl

И итоговый кликер выглядит вот так
Код
Sub клик()
Call keybd_event(VK_CONTROL, 0, 0, 0) 'Hажимаем Ctrl
mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
Call keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0) 'Отпускаем Ctrl
End Sub
Изменено: Danya-asg - 06.10.2018 14:48:38
Клик при зажатом CTRL с помощью VBA
 
Здравствуйте! Есть код, который кликает мышкой по экрану:
Код
Private Declare Function ActivateKeyboardLayout _
                          Lib "user32" (ByVal HKL As Long, ByVal flags As Long) As Long
Const kb_lay_ru As Long = 68748313, kb_lay_en As Long = 67699721
Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal dwData As Long, ByVal dwExtraInfo As Long)
Private Const MOUSEEVENTF_LEFTDOWN = &H2
Private Const MOUSEEVENTF_LEFTUP = &H4
Sub клик()
mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
End Sub

Как бы так сделать, чтобы он зажимал CTRL и кликал?

Пробовал делать всякие глупости вроде такой:

Код
Sub клик()
Sendkeys "{^}" 'Sendkeys "{CTRL}" тоже не работает
mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
End Sub

Естественно не помогло.

Поиск в диапазоне последнего значения по указанному критерию
 
Уже сломал мозг. Вопрос к опытным товарищам.
Есть столбик с разными числами:
1
3
1,257
1,8
2,5
0,3
1,2
и т.д.
Нет ли случайно такой формулы, которая найдет последнюю по счёту (самую нижнюю) ячейку, удовлетворяющую критерию например, ">=2"
в данном случае к примеру это третий с низу столбик, число "2,5".
В идеале чтобы формула выводила номер строки, или ссылку на искомую ячейку, которую можно будет потом использовать в других формулах для обозначения диапазона.
"Поискпоз" насколько я понял, умеет что то подобное делать, если тип сопоставления -1, но вот незадача, там числа должны быть отсортированы, а у меня в разброс, да и ищет она только сверху вниз. Буду рад любым советам, даже самым идиотским :)
Как вставить формулу из VBA
 
Цитата
Irregular Expression написал: используйте .FormulaLocal
Да действительно всё работает. Спасибо!
Как вставить формулу из VBA
 
Ну да, там английские варианты формул, буду разбираться
Как вставить формулу из VBA
 
Доброго времени суток! Пытаюсь вставить формулу в ячейку с помощью VBA, Формула составляется из нескольких кусочков при помощи символа "&"
Вставляется как надо, но везде сплошные апострофы, поэтому не работает. Как их убрать или может по другому вставлять формулу?
код следующий:
Код
.Cells(1, 1).FormulaR1C1Local = "=ИНДЕКС(I2:I24;ПОИСКПОЗ(P" & .[n1] & ";A2:A24;0))"
а в ячейку вставляется вот это:
=ИНДЕКС('I2':'I24';ПОИСКПОЗ('P4';'A2':'A24';0))
Если бы убрать вот это ' то всё бы работало. В чём я не прав?
Vba: найти ячейку, содержащую текст из буфера обмена
 
Отлично! ClipboardText работает как надо
Vba: найти ячейку, содержащую текст из буфера обмена
 
Проверял конечно же, нет всё работает
Изменено: Danya-asg - 22.10.2017 18:17:27
Vba: найти ячейку, содержащую текст из буфера обмена
 
Да всё правильно, от туда я и взял Function GetClipboard()
но почему-то текст который она возвращает вообще не хочет понимать find
Vba: найти ячейку, содержащую текст из буфера обмена
 
Да не, мне надо чтобы каждый раз копировало автоматически из сторонних приложений.
Пока вот так сделал
Код
sub
SendKeys "^{f}"
SendKeys "^{v}"
SendKeys "{ENTER}"
end sub
Но это как-то не по пацански
Изменено: Danya-asg - 22.10.2017 17:50:49
Vba: найти ячейку, содержащую текст из буфера обмена
 
Дико простой код, надо чтобы находилась ячейка, содержащая текст из буфера обмена
Код
Sub Макрос2()
Dim m As String
m = GetClipboard
    Cells.Find(What:=m, After:=ActiveCell, LookIn:=xlValues, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False).Activate
End Sub

Выдаёт ошибку. Хотя если сделать всё вручную через Ctrl+F всё работает.

что-то не так именно в Find. Проверял правильно ли ловит буфер обмена, всё работает:
Код
MsgBox GetClipboard
Изменено: Danya-asg - 22.10.2017 17:38:40
Как ускорить получение данных через ДРВ (rtd)
 
Возможно, есть какой-то период обновления данных в exel, подозреваю что он около 1 секунды, кто знает, как его уменьшить?
Как ускорить получение данных через ДРВ (rtd)
 
Сломал голову, но не нашел решения по всему интернету. Нужен скоростной обмен между терминалом CQG Qtrader и Exel
Вроде все просто, вставляю формулу:
Код
=ДРВ("cqg.rtd"; ;"ContractData"; "EU6?"; "Bid";; "T")
Всё работает, но медленно, задержка видна на глаз.
Как бы это сделать со скоростью до 10 ms?
Как подружить Exel с MT4 Через DDE сервер
 
В общем, разобрался сам. Загвоздка была  в том, что у каждого брокера немного по разному называются символы, точное название отображается на самом графике в левом верхнем углу терминала. Например в моём случае просто нужно было заменить формулу ='MT4'|BID!EURUSD на ='MT4'|BID!EURUSD.f
А размышления на тему "не лох ли я, когда смотрю на котировки, что рисует брокер" бессмысленны, если не знать того, что именно я собираюсь с ними делать :)
Как подружить Exel с MT4 Через DDE сервер
 
А с чем тогда дружить? Мне надо в режиме реального времени котировки в EXEL смотреть, чтобы значения обновлялись с каждым тиком
Как подружить Exel с MT4 Через DDE сервер
 
Вроде всё сделал правильно.
1. разрешил на терминале DDE сервер
2. Включил автообновление ссылок
3. поставил галочку "преобразование формул в формат EXEL при вводе.
пробовал на разных терминалах MT4, в одном случае просто в ячейках высвечивается N/A
В другом случае выводит вот такое окошко "нет доступа к удалённым данным, запустить MT4.EXE?" и если запустить, то естественно не запускает.
Вот файл (стандартный для MT4)
Изменено: Danya-asg - 12.05.2017 12:56:06
Как ускорить удаление строк по критерию
 
Цитата
Sanja написал:
А текст не может быть больше или меньше другого текста.
Почему то в моём стаорм медленном цикле это про прокатывало, текст сравнивался с текстом, хз почему. единственное что нельзя было вводить к примеру 9:00 вместо 09:00, а теперь можно.
Но в любом случае спасибо, теперь всё мгновенно летает!
Как ускорить удаление строк по критерию
 
Вставил Ваш код, почему-то он удаляет не те строки, которые нужно удалить, а первые с начала в количестве равном, количеству строк которые нужно удалить
Как ускорить удаление строк по критерию
 
вот файл. нужно чтобы он делал то же самое только быстрее, т.к. обычно файл гораздо больше , чем в примере и делает всё очень медленно. В примере ограничил количество последних строк до 1000, иначе в 100 кб не влезает.
Как ускорить удаление строк по критерию
 
Спасибо за подсказку, но выдаёт ошибку. error 424 objekt reqired, Подсвечивает желтым цветом строку
Код
 If Not delRows Is Nothing Then
ещё я так понял, что если мне надо удалять по условиям во втором столбце, то надо заменить
Код
arrTemp = Range("J" & lRow - 8640 & ":J" & lRow).Value 
на
Код
arrTemp = Range("B" & lRow - 8640 & ":B" & lRow).Value

я правильно понял?
И не могли бы вы объяснить что значит строка
Код
Set delRows = Union(delRows, Rows(I))

заранее огромное спасибо!
Страницы: 1 2 След.
Наверх