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

Страницы: 1
Смена фильтров в сводной таблице через VBA, Отличие свойства .CurrentPage от .PivotItems
 
Уважаемые знатоки! Подскажите пожалуйста как установить фильтр в сводной таблице (в строке фильтр, а не в шапке таблицы) с использованием подстаночного знака.
Маска такая: Chr(63) & "*"
Like не прокатил
.PivotFilters.Add Type:=xlCaptionContains, Value1:=значение   - тоже не работает
Кнопка отмена на форме (VBA)
 
Применял у себя такой вариант:
Код
Private Sub AgListCommandButton2_Click()
End
Unload Me
End Sub
Форма закрывается, основной макрос дальше не выполняется
Определить IP по MAC-адресу, Определить IP по MAC-адресу
 
Цитата
написал:
наверно по тому что это только в преелах одного сегмента, а такое сейчас редко встречается, у нас в одной комнате 3 раздельных сети + принтерная + телефония тоже отдельная.
в моем случае сегмент один

Цитата
написал:
Ну у меня была иная задача и решил сканированием диапазона с WebQuery и вытаскиванием из него серйиного номера , модели.
я так понимаю ip в вашем случае известен.
Определить IP по MAC-адресу, Определить IP по MAC-адресу
 
Цитата
nilske, написал:
Скоро придёт ТС и узнаем правду )Но всё-таки интересно, почему нельзя адаптировать одно из популярных решений, например по первой же ссылке из гугла https://qna.habr.com/q/64770
Да, такое решение популярно, встречал не раз. К сожалению мои познания в VBA пока не позволяют адаптировать такой скрипт в эксель. Поэтому вопрос можно изложить так: как собрать (типа парсера) полученные arp данные в массив пар mac-ip. а там уж прочесать его думаю я сам справлюсь
Определить IP по MAC-адресу, Определить IP по MAC-адресу
 
Цитата
написал:
Как-то так
Всем спасибо за отклик! предложенная функция срабатывает к сожалению только с mac-адресом компа на котором запускается макрос. Другие устройства  в сети (знаю точно что включенные) не определяет, выдает 0. Цель этой затеи - собирать ip телефонов для подключения по вэб-интерфейсу для настройки.
И еще может кому пригодится: функция чувствительна к регистру и разделителю - адрес надо писать через : а буквы только заглавные
Определить IP по MAC-адресу, Определить IP по MAC-адресу
 
Доброго времени суток!

Прошу помощи, может кто сталкивался или просто знает как реализовать следующую задачу.
Допустим в столбце А имеется список MAC-адресов. Можно ли прошерстить этот список и через cmd или wmic найти соответствующие им IP-адреса?
Затруднение именно в части запроса через командную строку - как и какой запрос надо отправлять? или это невозможно и надо только сканером (отдельной программой) собирать и потом ВПРом выбирать?

Предполагается что это будет функция примерно такого вида:
A1B1
00-11-22-33-44-55 =GetIpByMac(A1)
Чтобы не появлялся ноль в связанной ячейке
 
The_Prist, спасибо за важное уточнение
Чтобы не появлялся ноль в связанной ячейке
 
magrifa, спасибо, именно то что искал!  
Абсолютная ссылка на умную таблицу
 
Цитата
написал:
про волатильные (aka летучие) функции
Спасибо за ответ, приму к сведению на будущее. Однако при небольшом объеме данных (как в моем случае) это работает отлично, тормозов не ощутил. Таблица примерно 60*60
Абсолютная ссылка на умную таблицу
 
Цитата
написал:
ДВССЫЛ - не самый лучший способ. Это самый худший, его надо применять, когда другого выхода нет.
Можно подробнее, почему?
Как закреплять столбцы в формулах ссылаясь на таблицу
 
Цитата
написал:
Подскажите пож. как закреплять в формулах столбцы ссылаясь на подобную таблицу.например такая формула:=СУММ(Таблица1[Столбец1])Где и какой знак нужно указать чтобы при перетаскивании формулы столбец в ней не смещался?
заверните ссылку в ДВССЫЛ
=СУММ(ДВССЫЛ("Таблица1[Столбец1]"))
Нюансы работы функции «РАБДЕНЬ.МЕЖД», The nuances of «WorkDay_Intl» function
 
Jack Famous, спасибо за столь развернутое описание данной функции, именно то что я искал, тоже столкнулся с проблемой что не считается корректно если начало периода праздничный день. Ваша статья помогла разобраться
Скрытие интерфейса EXCEL
 
afanasev_n_a, спасибо огромное за готовое решение! как раз то что искал
Парсинг данных из таблицы на сайте, парсинг
 
Хочу поделиться макросом который прописывает сумму прописью. Писался под MS Word 2016: выделяешь число и запускаешь макрос и появляется окно с выбором падежа. После нажатия на ОК рядом с числом появляется тоже число только прописью. Думаю при необходимости макрос легко адаптируется в Excel. Форму не знаю как сюда прикрепить, но думаю из макроса видно какие элементы в ней должны присутствовать и сделать ее 5 минут.
Не обращайте внимание на коммент именительный падеж - первоначально думал каждый падеж собрать отдельно, потом понял что нет смысла усложнять код и реализовал через переменную, соответствующую строке массива в нужном падеже.
Конструктивная критика приветствуется  ;)
Код
Sub SumPropPadej()
 
With Selection
        aa = Replace(Replace(.Range.Text, Chr(160), ""), " ", "")
End With
 
 
Dim summa As String
summa = aa
dot = InStr(1, summa, ",", vbTextCompare)
If dot = 0 Then
summa = summa & ",00"
dot = InStr(1, summa, ",", vbTextCompare)
End If
summaL = Len(summa)
rub = Left(summa, dot - 1)
kop = Right(summa, summaL - dot)


UserForm1.Show


    If UserForm1.OptionButton1 = True Then
    p = 5
    Else
        If UserForm1.OptionButton2 = True Then
        p = 8
        Else
            If UserForm1.OptionButton3 = True Then
            p = 11
            Else
                If UserForm1.OptionButton4 = True Then
                p = 14
                Else
                    If UserForm1.OptionButton5 = True Then
                    p = 17
                    Else
                        If UserForm1.OptionButton6 = True Then
                        p = 20
                        Else
                        MsgBox "Выберите падеж"
                        End If
                    End If
                End If
            End If
        End If
    End If


Dim url As String
url = "https://summa-propisyu-online.ru/?sum=" & rub & "%2C" & kop & "&cur=RUB&nds=20&nds=20"
 
' Creating and sending the request:
Dim xmlhttp As Object
Set xmlhttp = CreateObject("MSXML2.XMLHTTP")
 
xmlhttp.Open "GET", url, False
xmlhttp.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
xmlhttp.send ""
 
 
' Getting the response:
Dim objHTML As Object
Set objHTML = CreateObject("htmlFile")
 
With objHTML
    .Open
    .write xmlhttp.responseText
    .Close
End With
 

 
' Parsing the response
Dim objDivs As Object, objDiv As Object
Dim objLis As Object, objLi As Object
Dim retText As String
 
Set objDivs = objHTML.getElementsByTagName("table")
 
For Each objDiv In objDivs
    If objDiv.ClassName = "table  table-bordered table-hover adaptive-table" Then
        Set objLis = objDiv.getElementsByTagName("td")
        For Each objLi In objLis
            retText = retText & objLi.innerText & vbNewLine
        Next objLi
        Exit For
    End If
Next objDiv


'собираем массив из строковой переменной
Dim arr() As String
arr = Split(retText, vbNewLine)


'Именительный падеж
ImPad = arr(p)
iP = Split(ImPad, " ")
iPl = UBound(iP)

Dim x As Variant
For j = 0 To iPl
    x = InStr(1, iP(j), "рубл", 1)
    If x > 0 Then
        rubSlovo = j
    End If
Next j

Dim iPr As String
For r = 0 To rubSlovo - 1
    If r = rubSlovo - 1 Then
    iPr = iPr & iP(r) & ") " & iP(r + 1)
    Else
    iPr = iPr & iP(r) & " "
    End If
Next r

If kop = "00" Then
    If p = 11 Then
        iPrk = " (" & iPr & " " & kop & " копейкам"
        Else
            If p = 17 Then
                iPrk = " (" & iPr & " " & kop & " копейками"
                Else
                    If p = 20 Then
                        iPrk = " (" & iPr & " " & kop & " копейках"
                        Else
                        iPrk = " (" & iPr & " " & kop & " копеек"
                        End If
            End If
    End If
Else
    iPrk = " (" & iPr & " " & kop & " " & iP(iPl)
End If

iPrk = Replace(iPrk, Mid(iPrk, 3, 1), LCase(Mid(iPrk, 3, 1)))


With Selection
    .Range.Text = .Range.Text & iPrk
End With


End Sub
Парсинг данных из таблицы на сайте, парсинг
 
Код
Sub SumPropPadej()
 
Dim url As String
url = "https://summa-propisyu-online.ru/?sum=36%2C56&cur=RUB&nds=20&nds=20"
 
' Creating and sending the request:
Dim xmlhttp As Object
Set xmlhttp = CreateObject("MSXML2.XMLHTTP") '??XML??
 
xmlhttp.Open "GET", url, False '?GET ????
xmlhttp.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
xmlhttp.send ""
 
 
' Getting the response:
Dim objHTML As Object
Set objHTML = CreateObject("htmlFile")
 
' Note: this objHTML.write will not work with early binding!
' In that case you have to use the .body.innerHTML
' like in the code sample above.
With objHTML
    .Open
    .write xmlhttp.responseText
    .Close
End With
 

 
' Parsing the response
Dim objDivs As Object, objDiv As Object
Dim objLis As Object, objLi As Object
Dim retText As String
 
Set objDivs = objHTML.getElementsByTagName("table")
 
For Each objDiv In objDivs
    If objDiv.ClassName = "table  table-bordered table-hover adaptive-table" Then
        Set objLis = objDiv.getElementsByTagName("td")
        For Each objLi In objLis
            retText = retText & objLi.innerText & vbNewLine
        Next objLi
    End If
Next objDiv
 
Debug.Print retText
 
 
End Sub
Парсинг данных из таблицы на сайте, парсинг
 
Цитата
написал:
задвоенный не должен быть, может быть вы не удалили 13ю строку?либо не очистили окно immediate перед следующим тестом
debugPrint закомментил.
immediate очищал.

Выдает:

Падеж
Вопрос
Сумма 36 рублей 56 копеек прописью
Именительный
есть что?
Тридцать шесть рублей пятьдесят шесть копеек
Родительный
нет чего?
Тридцати шести рублей пятидесяти шести копеек
Дательный
рад чему?
Тридцати шести рублям пятидесяти шести копейкам
Винительный
вижу что?
Тридцать шесть рублей пятьдесят шесть копеек
Творительный
любуюсь чем?
Тридцатью шестью рублями пятьюдесятью шестью копейками
Предложный
думаю о чем?
Тридцати шести рублях пятидесяти шести копейках
Падеж
Вопрос
Сумма 36 рублей 56 копеек прописью
Именительный
есть что?
Тридцать шесть рублей пятьдесят шесть копеек
Родительный
нет чего?
Тридцати шести рублей пятидесяти шести копеек
Дательный
рад чему?
Тридцати шести рублям пятидесяти шести копейкам
Винительный
вижу что?
Тридцать шесть рублей пятьдесят шесть копеек
Творительный
любуюсь чем?
Тридцатью шестью рублями пятьюдесятью шестью копейками
Предложный
думаю о чем?
Тридцати шести рублях пятидесяти шести копейках
Парсинг данных из таблицы на сайте, парсинг
 
Еще раз спасибо за помощь! +100500 Вам в карму. Мне еще учиться и учиться, но теперь хоть буду знать такие нюансы на будущее
Парсинг данных из таблицы на сайте, парсинг
 
Спасибо! Помогло. Подскажите с чем это связано? - адрес копировал из браузера, вроде должно ж было все работать...

И еще вопрос: почему результат выдает задвоенный, как будто 2 раза подряд парсил?
Изменено: Александр Берг - 13.07.2023 15:28:18
Парсинг данных из таблицы на сайте, парсинг
 
Добрый день коллеги! Прошу помощи, не могу понять почему парсинг в приведенном коде дает пустые значения.
Задача: собрать результаты склонений суммы из таблицы результатов запроса.

Тестил данный код на сайте https://numeralonline.ru/ - здесь все работает, разница лишь в том что собирать из тега div, а не из table как здесь
Код
Sub SumPropPadej()

Dim url As String
url = "https://summa-propisyu-online.ru/?sum=36%2C56&cur=RUB&nds=20&nds=20#main_form" 'запрос пока фиксированный = 36,56

' Creating and sending the request:
Dim xmlhttp As Object
Set xmlhttp = CreateObject("MSXML2.XMLHTTP") '??XML??

xmlhttp.Open "GET", url, False '?GET ????
xmlhttp.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
xmlhttp.send ""


' Getting the response:
Dim objHTML As Object
Set objHTML = CreateObject("htmlFile")

' Note: this objHTML.write will not work with early binding!
' In that case you have to use the .body.innerHTML
' like in the code sample above.
With objHTML
    .Open
    .write xmlhttp.responseText
    .Close
End With

' Parsing the response
Dim objDivs As Object, objDiv As Object
Dim objLis As Object, objLi As Object
Dim retText As String

Set objDivs = objHTML.getElementsByTagName("table")

For Each objDiv In objDivs
    If objDiv.ClassName = "table  table-bordered table-hover adaptive-table" Then
        Set objLis = objDiv.getElementsByTagName("td")
        For Each objLi In objLis
            retText = retText & objLi.innerText & vbNewLine
        Next objLi
    End If
Next objDiv

Debug.Print retText


End Sub

Добавление надежного расположения на удаленном ресурсе, не добавляет надежное расположение, если в качестве адреса указан IP сервера
 
Цитата
написал:
ps. нашел решение, можно добавить адрес в свойствах обозревателя (картинка с просторов гугла)Скрытый текст
Спасибо большое, помогло!
Реализация формул ЕСЛИОШИБКА и ВПР в VBA
 
New, спасибо буду знать
Реализация формул ЕСЛИОШИБКА и ВПР в VBA
 
JayBhagavan, спасибо огромное! А в чем сакральный смысл двойного заковычивания пустоты? И ещё в продолжение темы: можно ли сделать так чтобы на лист вставлялась не формула, а результат её вычисления?  
Реализация формул ЕСЛИОШИБКА и ВПР в VBA
 
Помогите пожалуйста разобраться почему выдает ошибку при выполнении данного кода:
Код
ActiveCell.FormulaR1C1Local = _
        "=ЕСЛИОШИБКА(ВПР(RC[-1];Лист2!R2C2:R6C3;2;0);"")"

Если просто написать эту формулу в ячейке то все работает

Страницы: 1
Наверх