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

Страницы: 1
Изменение текста (TextToDisplay) гиперссылки при экспорте в ПДФ
 
Добрый день.

есть ячейка с текстом, текст произвольный. Внутри текста есть стринг, который по формальным параметрам является гиперссылкой (не кликабельный).
При использование встроенного экспорта в ПДФ в итоговом документе ПДФ ссылка (внезапно) становится кликабельной. Ее текст сохраняется.

Подскажите, на каком этапе простой текст приобретает свойство гиперссылки, и можно ли подменить отображаемый текст? Т.е. в ПДФ видим, к примеру,  "Яндекс", а по клику попадаем на исходный текст "https://yandex.ru"?

Может есть какой-то язык разметки, который понимает конвертор?

Вопрос возник от невозможности превратить часть текста в ячейке в полноценную кликабельную гиперссылку. А может есть и такое?

Спасибо
Суммирование по условию наличия в диапазоне
 
Изумительно!
Спасибо огромное.
Суммирование по условию наличия в диапазоне
 
Добрый день
с VBA совсем отвык от формул, не могу сообразить - есть произвольный список SKU в строке (D:K).
есть таблица с ценами.
как простой формулой получить сумму в столбце М? Не так, чтобы перечислять условие 8 раз.

должно быть элементарно как-то, туплю.
Спасибо!
Автоматическое обновление отображаемого значения в combobox
 
Цитата
GRIM написал:
Тогда макрос:
макросы решают все, но, как я говорил, использование в данном случае невозможно, книга должна быть простой.

Вобщем если кто знает, подскажите. А пока оставлю как есть.
Автоматическое обновление отображаемого значения в combobox
 
Цитата
GRIM написал:
используйте элемент управления, а не элемент ActiveX.
Спасибо, в этом варианте конечно все работает.
Изначально уход в сторону ActiveX был вызван необходимостью менять размер и тип шрифта, что невозможно (поправьте?) с элементами управления.
Все-таки, можно ли заставить комбобокс вести себя также?
Автоматическое обновление отображаемого значения в combobox
 
Добрый день
в приложенном файле два комбобокса и два списка значений. Первый (Lang) это список языков из ячеек А7:А9.
Второй (List) это список формируемый на основе значения первого смещением по диапазону E:G.

Вопрос в следующем:

Как  сделать так, чтобы при изменении языка в первом комбобоксе, второй автоматически отображал первый элемент актуального списка?

Сейчас это получается только в одном случае, если второй комбобокс был активен перед выбором в первом.

Макросы к сожалению недопустимы, есть ли какие свойства комбобокса позволяющие это сделать?
Следующее значение из выпадающего списка, Как автоматизировать через макрос выбор следующего значение в выпадающем списке.
 
Если список задан через проверку данных, то вот так можно попробовать
Код
Sub test()
Debug.Print ActiveSheet.Cells(1, 1).Validation.Formula1
arr_test = Split(ActiveSheet.Range("A1").Validation.Formula1, ";")
For i = 0 To UBound(arr_test)-1
   If ActiveSheet.Cells(1, 1).Value Like arr_test(i) Then
       ActiveSheet.Cells(1, 1).Value = arr_test(i + 1)
       Exit For
   End If
Next i
End Sub
Изменено: Slaffka - 23.02.2018 19:43:37
Извлечение нужного тега из HTML документа через текстовую переменную (VBA)
 
Цитата
Игорь написал:
поэтому, я остановился на таком способе поиска тегов в HTML:
Да, я видел в поиске выдачу этой ссылки, когда искал решение. Моя задача существенно скромнее, все в принципе решается через Instr и Mid в применение к тексту документа. Просто делать через getElement иногда выглядит гораздо изящнее, и с циклами проще.
Тут уже принципиальный вопрос, есть ли лазейка чтобы скрипт принял текстовую переменную и выполнил как будто это строка кода.
Пока только решение из первого ответа, програмное создание нового модуля с заданным текстом, вызов и удаление потом.

В любом случае всем спасибо и всех с праздником. Если кто набредет на ответ, дайте знать.
Извлечение нужного тега из HTML документа через текстовую переменную (VBA)
 
Цитата
serega124 написал:
Evaluate() - это для функций листа. https://stackoverflow.com/questions/43216390/how-to-run-a-string-as-a-command-in-vba

Да, это вариант. Выглядит конечно громоздко, и сколько времени занимает не совсем понятно.
Пасиб, попробую протестировать
Извлечение нужного тега из HTML документа через текстовую переменную (VBA)
 
Андрей,  вопрос-то не в этом. И вытаскивать содержимое не нужно.

В примере нужная информация описана как путь:
doc.getElementsByClassName("ViewTable1")(0).getElementsByTagName("b")(0).innerText

вопрос в том, можно ли загнать путь в текстовую переменную, и использовать ее как указание откуда брать данные.

переменная генерится в процессе исполнения скрипта, то есть может принять вид и такой, и например вот такой:

doc.getElementsByClassName("deemphasize")(2).getElementsByTagName("span")(10).innerHTML (для приведенного примера вернет ошибку, конечно)

Это будет текст, по которому скрипт должен пойти и получить данные.
Собственно вопрос в том, как заставить принять текст как команду.

Так не вводит в заблуждение?

querySelector штука занятная, но я не вижу пока как его применить по моей теме. Может он обращаться ко вложенным тегам? И брать не первый по порядку а с нужным номером?
Извлечение нужного тега из HTML документа через текстовую переменную (VBA)
 
Цитата
Андрей VG написал:
Файл не смотрел.
В примере все должно быть понятно.
Извлечение нужного тега из HTML документа через текстовую переменную (VBA)
 
Добрый день
есть условный HTML документ (см. файл с примером).
Обычный способ извлечения работает на ура.
Суть в том, что нужное дерево тегов формируется каждый раз заново и существует в виде текстовой переменной.
Как можно подружить текст и необходимость извлечь данные? То есть заставить Excel воспринимать текст как код?
Робкая попытка использовать Evaluate() не прошла.
Буду признателен за подсказку.
С уважением,
Slaffka
Проблемы с открытием файла с французским именем средствами VBA
 
Второй раз вляпался в проблемы с Dir - в этот раз имена были английские, но файлы сделаны на бельгийской машине, то есть опять франузский язык в системе. Если сделать копию файла в папке (просто Ctrl-c,  Ctrl-v), появляющуюся копию Dir уже не воспринимает.
Дальше еще круче, открываешь файл, меняешь данные вручную, сохраняешь, закрываешь.
Открываешь через sFiles - открывается старая версия, неизмененная. Ну ладно, думаешь, забыл сохранить изменения. Открываешь обычным образом - все изменения на месте. Бред какой-то.
Вобщем настала пора попробовать:
Цитата
Игорь написал:может, такой вариант сработает
Работает на ура, спасибо
Проблемы с открытием файла с французским именем средствами VBA
 
Спасибо всем, да, кодировка представляется проблемой.
Цитата
Hugo написал:
Вот никогда не нравилась Dir(), интуитивно...
вот и нашелся-таки ее косячок  ;)
Цитата
Игорь написал:
Попробуйте обойтись без функции dir, - может, такой вариант сработает
http://excelvba.ru/code/FilenamesCollection
спасибо, пока вопрос решен костылем, переносом списка файлов на лист, так как задача не повторяющаяся то и бог с ним. В будушем попробую.
Цитата
Hugo написал:
но думаю что поможет CHRW()
это если нужно сохранить файл со странным именем, тогда да. А как она может помочь при чтении?
Проблемы с открытием файла с французским именем средствами VBA
 
Используется Excel 2007, локализованый русский.
Собственно проблема в открытии файлов с использованием функции Dir. Я накидал простенький пример, любой из методов открывает все .xlsx файлы в заданной папке.
Но как только в имени файла появляются французские акценты, VBA дает ошибку. Прилагаю и файл который не открывается.
в окне Immediate видно, что переменная содержит имя файла с измененной буквой é, поэтому и не находит файл чтобы открыть.
Странность в том, что открытие файла через ThisWorkbook.FollowHyperlink какое-то время срабатывало, и только вот сегодня отказалось напрочь. Умолчания в системе обычные, Excel только одной версии.
Если отбросить Dir, и читать имя файла из ячейки - то первый метод срабатывает корректно, второй так же не работает.
Подскажите, можно ли заставить текстовые переменные принимать значения в соответствие с не английским и не локальным языком? Или тут есть еще что-то что я вообще упустил?
Спасибо!
Изменение границ именованого диапазона в зависимости от значения ячейки
 
Спасибо! Варианты работают.
хорошего дня.
Изменение границ именованого диапазона в зависимости от значения ячейки
 
Добрый день!
подскажите пожалуйста, можно ли, и как, изменить границы именованого диапазона на основании значения некой ячейки?
есть  диапазон "list1" задан формулой =СМЕЩ(Data!$A$2;;;СЧЁТЗ(Data!$A$2:$A$10000)).
применяется для проверки данных при вводе.
как при изменении значения произвольной ячейки с другого листа, например A2 на "2" изменить формулу в описании диапазона "list1" на  =СМЕЩ(Data!$B$2;;;СЧЁТЗ(Data!$B$3:$B$10000))?
то есть перескочить на соседний столбец, не меняя имени самого диапазона?
чувствую, что есть решение, сломал мозг уже, не выходит никак.
Спасибо!
Загрузка кода веб-страницы, как сервер понимает, что это запрос не через браузер?
 
Добрый день

вопрос вот в чем. Есть задача получить исходный код веб-страницы в текстовую переменную. Данный код прекрасно справляется в большинстве простых случаев:

Код
Sub sample()
sURL = "https://yandex.ru"
Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")   
    With oXMLHTTP
        .Open "GET", sURL, False
        .send
        If .Status = 200 Then txt = .responseText
    End With
MsgBox (txt)        
End Sub


Сама искомая веб-страница вот:
http://www.manta.com/ic/mtq599v/ca/45th-street-limited-partnership

дальше начинаются сложности - в браузере страница отображается корректно, а при выполнении кода:

Код
Sub sample()
sURL = "http://www.manta.com/ic/mtq599v/ca/45th-street-limited-partnership"
Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
    With oXMLHTTP
        .Open "GET", sURL, False
        .send
        If .Status = 200 Then txt = .responseText
    End With
MsgBox (txt)         
End Sub


ответ сервера содержит только информацию, что роботам данные не предоставляются.

Собственно сам вопрос - чем отличается запрос от браузера и от макроса, и, главное, как убедить сервер дать корректный ответ?
Спасибо.
Страницы: 1
Loading...