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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 156 След.
НЕ работают некоторые шрифты на кнопках с панели "Формы", В Excel 2007 и выше часть шрифтов на НЕ-Axctive-X кнопках (Button) не работают, хотя видны при редактировании
 
У меня такое не наблюдается.


Может быть, эта тема поможет?
Владимир
Сортировка таблицы макросом
 
Метод  SortFields.Add2 появился в Excel 2019. Лучше использовать Add вместо Add2 - будет работать на большем числе версий Office.

Вообще, в подобных задачах лучше использовать Автофильтр, который, в частности, умеет сортировать по столбцу.
Изменено: sokol92 - 19.05.2024 14:12:53
Владимир
Формат текста при функции ВПР
 
Цитата
andypetr написал:
Поправил код UDF-функции
Следует учитывать ограничения для UDF-функций.
Изменено: sokol92 - 15.05.2024 17:59:19
Владимир
Формат текста при функции ВПР
 
Здравствуйте, Михаил!

... придется потратить определенное время (или написать макрос)  :)  
Владимир
Формат текста при функции ВПР
 
И для коллекции - еще один способ решения подобных задач.
Владимир
Ошибка с библиотеками
 
В современных версиях вместо  MSXML.IXMLDOMElement (и т.д.) следует писать  MSXML2.IXMLDOMElement. Можно также просто
Код
pColumnElem As IXMLDOMElement, _
и т.д.
Владимир
Автоматическое обновление сводной таблицы
 
Цитата
RayI написал:
выдает ошибку
Выложите файл-пример.
Владимир
Преобразование графика, Преобразовать график отгрузок в список
 
Выполните макрос Test.

Функция UnPivot довольно часто бывает востребована.

Код
Option Explicit

' arr - двумерный массив (соответствует диапазону ячеек).
' Возвращает массив с 3 столбцами:
' - заголовок строки
' - заголовок столбца
' - значение непустой ячейки на пересечении
Function UnPivot(ByVal arr)
  Dim i As Long, j As Long, L1 As Long, L2 As Long, n As Long, reg As Long, res
 
  L1 = LBound(arr, 1)
  L2 = LBound(arr, 2)
  ' reg=1: считаем непустые ячейки
  ' reg=2: заполняем массив
  For reg = 1 To 2
    If reg = 2 Then
      If n = 0 Then ' Нет непустых ячеек
        Exit Function
      Else
        ReDim res(1 To n, 1 To 3)
        n = 0
      End If
    End If
  
    For i = L1 + 1 To UBound(arr, 1)
    For j = L2 + 1 To UBound(arr, 2)
      If Not IsEmpty(arr(i, j)) Then
        n = n + 1
        If reg = 2 Then
          res(n, 1) = arr(i, L2)
          res(n, 2) = arr(L1, j)
          res(n, 3) = arr(i, j)
        End If
      End If
    Next j
    Next i
  Next reg
  
  UnPivot = res
End Function

Sub Test()
  Dim arr, res
  arr = ThisWorkbook.Worksheets(1).Range("A1").CurrentRegion.Value
  res = UnPivot(arr)
  With ThisWorkbook.Worksheets(2)
    .Cells.Delete
    .Range("A1").Resize(UBound(res, 1), UBound(res, 2)).FormulaLocal = res
    .Columns("A:C").AutoFit
  End With
  
End Sub
Владимир
Из названия месяца в формат даты
 
Цитата
zorkon71 написал:
ДАТАЗНАЧ() не срабатывает
Не нравится родительный падеж названия месяца. Нужен именительный падеж или первые три буквы названия месяца в именительном падеже.
Изменено: sokol92 - 16.04.2024 20:10:20
Владимир
Свойства и методы, установленные в VBA по умолчанию
 
Вот еще тема о свойствах по умолчанию.
Владимир
Свойства и методы, установленные в VBA по умолчанию
 
Цитата
testuser написал:
такая конструкция в vb* работает не очень правильно
VBA не одинок в этой компании. См. статью о коротком замыкании.

Кстати, такая формула
Код
=ЕСЛИ(ИЛИ(1=1; MyFunc());1;0)

вызывает функцию MyFunc.
Изменено: sokol92 - 10.04.2024 14:12:20
Владимир
Свойства и методы, установленные в VBA по умолчанию
 
Цитата
Evgenyy написал:
Прислушайтесь к Чехову, а не к БМВ
Не уверен, что Антон Павлович знал Excel  на том же уровне, что Михаил.

Цитата
Evgenyy написал:
"Краткость - сестра таланта".
... но мачеха гонорара (что иногда относится и к программистам).  :)
Владимир
Свойства и методы, установленные в VBA по умолчанию
 
Здравствуйте, Владимир!
Не знал, как с этим быть. Вродe, Excel.Application, Value(...) - обязательная программа, а  .ActiveWorkbook.ActiveSheet. под капотом (?)   :)

Update. Можно еще так проверять выводы (VBS):

Код
Call Run_macro
Sub Run_macro()
   set objExcel = CreateObject ("Excel.Application")
   objExcel.Visible = True    
   objExcel.Workbooks.Add
   objExcel.Range("A1")=1
End sub


Кстати, в LibreOffice много языков программирования (Basic, Python, Java, ...) и границы между языком программирования и объектной моделью Calc (аналог Excel) отчетливо видны и документированы.
Изменено: sokol92 - 09.04.2024 16:49:17
Владимир
Свойства и методы, установленные в VBA по умолчанию
 
Кстати, небольшая задача по данной теме.
Как в "полном" виде выглядит оператор:
Код
Range("A1") = 1

Мой вариант ответа:
Скрытый текст
Владимир
Свойства и методы, установленные в VBA по умолчанию
 
Я бы разделил мир VBA и миры Excel, Word, ...
Сам по себе VBA достаточно компактный язык и описан в этом  разделе.
Изменено: sokol92 - 08.04.2024 20:17:58
Владимир
VBA Часть текста "полужирный" в буфер обмена, из переменной, Скопировать текст в буфер обмена, при этом его часть сделать "полужирной"
 
Цитата
AlexGor написал:
то вставляются два знака вопроса в квадратиках￿￿
Это обсуждалось здесь.

Вместо кода для обнуления буфера обмена из #73 попробуйте код отсюда, указанный Владимиром (ZVI).

Код
  CreateObject("htmlfile").ParentWindow.ClipboardData.SetData "Text", ""
Изменено: sokol92 - 07.04.2024 17:53:22
Владимир
Суммирование по критерию дата в самой формуле, отбор по дате, дата прописывается в самой формуле
 
Указанные выше подходы не будут работать на компьютерах с другими региональными настройками. Используйте функцию ДАТА.
Владимир
не удаётся убрать "защищенный просмотр"
 
При добавлении сетевой папки обратите внимание на флажок (внизу диалогового окна): "Разрешить надежные расположения в моей сети (не рекомендуется)".
Владимир
Слияние Excel и Word, Слияние Excel и Word
 
Выложите пример файлов Word (шаблон документа слияния) и файла Excel (источник данных).
Владимир
Разрыв страницы
 
Цитата
lipatovik написал:
Файл пришлось изрядно уменьшить, там 1200 страниц
При применении макросов нужно учесть техническое ограничение Excel:
Цитата
Разрывы страниц : 1 026 горизонтальных и вертикальных

При необходимости можно обойти путем разбиения одного листа книги на два.
Изменено: sokol92 - 01.04.2024 14:22:42
Владимир
VBA: Изменить границы именованного диапазона программно
 
Для присвоения имени листа (а не книги) можно использовать такую модификацию:
Код
 Range("A1").Name = "Лист1!A_1"
Владимир
VBA Часть текста "полужирный" в буфер обмена, из переменной, Скопировать текст в буфер обмена, при этом его часть сделать "полужирной"
 
AlexGor, testuser и другие коллеги, спасибо за интересную тему и исследования!
Владимир
Округление в Excel
 
В Excel то, что хочет автор темы, называется "Экспоненциальный" формат ячейки. Затем (опционально) можно убрать E+xx (E-xx) и передвинуть запятую.
Владимир
Excel преобразует нумерацию №п.п. в десятичную дробь
 
Цитата
olege1983 написал:
Почему код ниже преобразует текстовое значение в числовое
Разбирается в этой теме, пункт 4.4
Владимир
Особенность сортировки диапазона с формулами, Баг или фича?
 
Владимир, спасибо, не знал этого.
Владимир
VBA Часть текста "полужирный" в буфер обмена, из переменной, Скопировать текст в буфер обмена, при этом его часть сделать "полужирной"
 
Цитата
AlexGor написал:
Запуск с кнопки описал ранее в #37
Да, спасибо, тогда, на мой взгляд, с практической точки зрения проблемы нет. Разбираться с разным поведением макросов при запуске из VBE и непосредственно из Excel (и еще в различных версиях Win и Office) можно бесконечно.  :)
Владимир
VBA Часть текста "полужирный" в буфер обмена, из переменной, Скопировать текст в буфер обмена, при этом его часть сделать "полужирной"
 
Цитата
AlexGor написал:
так я код запускаю клавишей "Run Sub" из редактора.
Попробуйте закрыть редактор и запускать макрос непосредственно из Excel посредством диалога "Макрос" (Alt+F8) или назначьте на макрос горячую клавишу (можно через кнопку "Параметры" в том же диалоге).
Изменено: sokol92 - 25.03.2024 15:24:59
Владимир
VBA Часть текста "полужирный" в буфер обмена, из переменной, Скопировать текст в буфер обмена, при этом его часть сделать "полужирной"
 
Цитата
AlexGor написал:
редактор VBA активен
Редактор VBE - отдельная песня, лучше все тестировать при закрытом редакторе.
Владимир
Подсказка в эксел, Подсказка при условиях
 
... примерно таким.

Нужно предусмотреть изменение ячейки как через счетчик, так и непосредственно.
Владимир
VBA Часть текста "полужирный" в буфер обмена, из переменной, Скопировать текст в буфер обмена, при этом его часть сделать "полужирной"
 
Большое спасибо за проделанную работу!
Изменено: sokol92 - 24.03.2024 19:40:00
Владимир
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 156 След.
Наверх