Вопросы и ответы

Q: В чем смысл жизни?
A: Мой ответ здесь.
Q: Как переименовать поля в таблице MS Access?
A: Мой ответ
Public Sub RenameTableField(strTable As String, strOldName As String, strNewName As String)
    Dim db As DAO.Database
    Dim tdf As DAO.TableDef
    Dim fld As DAO.Field
    Set db = CurrentDb
    Set tdf = db.TableDefs(strTable)
    Set fld = tdf.Fields(strOldName)
    fld.Name = strNewName
    Set fld = Nothing
    Set tdf = Nothing
    db.Close
    Set db = Nothing
End Sub
                                    
Q: Как скачать данные из интернета в Excel?
A: Мой ответ здесь.
Q: Как в VBA преобразовать строку в вещественное число, если неизвестен десятичный разделитель (точка или запятая) в «Настройках формата» пользователя?
A: Чтобы понять, какой разделитель используется на компьютере, нужно посмотреть какое-нибудь вещественное число: что у него там десятичного? – точка или запятая? Я не нашел ничего проще, чем спросить у компьютера: который час? – и его ответ преобразовать в Double. Тут-то вся его подноготная локаль и проявится. Ну а дальше заменить во входной строке «неправильный» разделитель на правильный. Собственно, код ниже.
 Function CdblLocaleIndependent(strNum As String) As Double
    Dim decSeparator As String, strDate As String
    strDate = CDbl(Now)
    If (Len(strDate) - Len(Replace(strDate, ".", ""))) > 0 Then
     CdblLocaleIndependent = Replace(strNum, ",", ".")
    Else
     CdblLocaleIndependent = Replace(strNum, ".", ",")
    End If
 End Function
                                
Q: Как на VBA обновить все ссылки на файлы в случае переноса файлов в другую директорию?
A: В принципе, не сложно, только постарайтесь не ошибиться в строках, которые меняете. Протестируйте не столько макрос, сколько себя. Создайте линк на какой-либо файл. Перенесите файл в другую директорию. Поставьте правильно строки для замены. Запустите макрос. Проверьте, открывается ли файл. Если открывается, то всё в порядке. Если нет, посмотрите внимательнее на заменяемый и заменяющий пути.
Sub ChangeHyperLinks()
    Dim oldAddr As String, newAddr As String
    oldAddr = "Внесите сюда старую часть адреса файла, которую нужно поменять, например \\oldServer"
    newAddr = "Внесите сюда новую часть адреса файла, на которую нужно поменять, например \\newServer"
    Dim hprLnk As hyperLink
    Dim wSheet As Worksheet
    ' Вызывайте макрос на том листе, на котором нужно поменять гиперссылку
    Set wSheet = ActiveCell.Worksheet
    For Each hprLnk In wSheet.Hyperlinks
         hprLnk.Address = Replace(hprLnk.Address, oldAddr, newAddr)
    Next hprLnk
    MsgBox "Линки на текущем рабочем листе обновлены."
End Sub
                                
Как переопределить свойства класса CSS с помощью другого класса CSS
Добавьте к тому свойству класса, что должно переопределять аналогичные свойства других классов дерективу !important. Например:
    .myOverrideClass {
    font-family: "Open Sans", sans-serif !important;
}
                                    
Q: Как найти и распарсить JSON на странице сайта в интернете с помощью VBA Excel?
A: Мой ответ здесь.
Q: Интересно, что некоторые задачи гуглятся сразу же, а обратные никак. Распарсить json-ответ две тыщи туториалов, составить json-запрос - ничего. Не понятно, где найти хоть один ответ?
A: Попробую исправить ситуацию. Для примера возьму API Директа. Структура запросов Json описана в документации (https://yandex.ru/dev/direct/doc/ref-v5/ads/get-docpage/). Что делаю я? Я просто всю эту структуру записываю в файл, при необходимости поднимаю этот файл с диска, и меняю параметры в соответствии с тем, что хочу получить. Например, у меня такой файл (один из множества) используется:
{
  "method": "get",
  "params": { 
    "SelectionCriteria": {  
      "States": ["ON", "OFF"],
      "Statuses": ["ACCEPTED"],	  
	  "CampaignIds": [$CampaignID]
    }, 
    "FieldNames": ["Id", "AdGroupId"],
    "TextAdFieldNames": [ "AdImageHash"]
    }
} 
                                    
Q: Есть журнал операций (Cashflow) с двумя полями: OpDate – дата и время операции и OpSum – сумма опеарции. Какой запрос нужно написть, чтобы появилось третье поле с остатком после каждой операции?
A: В Transact-SQL есть такое слово – OVER. Оно позволяет ограничить (определить окно) и упорядочить набор строк для применения агрегирующей функции. Для каждой строки запроса агрегирующая функция агрегирует только те записи, что находятся не ниже ее. Использя OVER можно написать такой запрос:
SELECT 
       OpDate,
       OpSum,
       SUM(OpSum) OVER(ORDER BY OpDate ASC) AS BALANCE
FROM CashFlow
                                    
Q: Что есть в C# от функционального программирования?
A: Мой ответ здесь.
Q: Как написать Telegram bot на VBA?
A: Мой ответ здесь.
Q: Как в Notepad++ убрать все символы с начала строки и до символа ~ ?
1) Нажать Ctrl+H
2) Отметить опцию Regular Expression
3) В Find What поставить .+~
4) Replace with оставить пустым
5) Для проверки нажать Find Next и убедиться, что выделяется именно тот фрагмент, что нужно.
6) Нажать Replace и убедиться, что именно то, что нужно исчезло из исправляемой строки.
7) Перекреститься и нажать на Replace All.
Q: Как мне синхронизировать Solution Explorer с текущим окном/файлом в Visual Studio?
1) Tools - Options - Projects and Solutions - General - Track Active Item In Solution Explorer
или
2) Нажать "CTL + '[', S" чтобы синхронизировать Solution Explorer с файлом в текущем окне редактирования.
Q: Классический windows (10/11) notepad отображает буквы кракозябрами. Как исправить?
RUN > intl.cpl > administrative > Current language for non-Unicode programs > Change system locale...
Q:Хотите задать свой вопрос?