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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 127 След.
Как скрыть группу Shapes находящейся в другой группе
 
Да можно "подлезть":
Код
Sub Test()
  Dim groupItems, v
  Set groupItems = ActiveSheet.Shapes("Group2").groupItems
  For Each v In groupItems
    Debug.Print "Внутренний объект " & v.Name
    v.Visible = True  ' False
  Next v
End Sub 
 
Изменено: sokol92 - 23.10.2021 21:09:22
Владимир
Чем заменить метод Application.GetOpenFilename в Виндовс на Маке?
 
У разработчика есть разъяснения на эту тему.
На форуме есть крайне ограниченное число обладателей Excel для Mac OS. Лучше вопросы задавать в соответствующей ветке форума. Или изучать содержимое сайта Рона де Брюна (он фанат Excel for Mac).
Изменено: sokol92 - 22.10.2021 17:13:49
Владимир
Замедление работы при реализации именованной формулы функцией ДВССЫЛ
 
Цитата
С.М. написал:
остался атавизм
Согласен с коллегой. Неоправданное использование имен уровня книги создает (часто трудно объяснимые) проблемы при копировании / перемещении листов и т.д.
Владимир
Почему при малом количестве данных файл много весит и тормозит. Как это исправить?
 
Файл из сообщения #1 проще всего очистить так:
Код
Sub DeleteDrawingsObj()
  ActiveSheet.DrawingObjects.Delete
End Sub
Владимир
Почему при малом количестве данных файл много весит и тормозит. Как это исправить?
 
Думаю, что диагноз и средства лечения прописаны в этом ответе Владимира (ZVI).
Обычно это происходит при копировании информации из браузеров.
Изменено: sokol92 - 21.10.2021 13:19:04
Владимир
Какая причина долгих расчетов без предварительного сохранения или открытия параметров экселя, почему скорость расчетов зависит от просмотра параметров экселя
 
Бахтиёр, это я Вас не совсем понял. :)  Для того, чтобы очистить стек Undo/Redo операций, относящихся к книге, макрос должен внести изменения в эту книгу. Можно, например, значение какой-нибудь ячейки присвоить само себе.
Изменено: sokol92 - 20.10.2021 16:34:11
Владимир
Какая причина долгих расчетов без предварительного сохранения или открытия параметров экселя, почему скорость расчетов зависит от просмотра параметров экселя
 
Здравствуйте, Бахтиёр! Почитайте эту тему.
Владимир
Какая причина долгих расчетов без предварительного сохранения или открытия параметров экселя, почему скорость расчетов зависит от просмотра параметров экселя
 
Цитата
БМВ написал:
Тормоза пропали?
Здравствуйте, Михаил! А их и нет (по крайней мере у меня, Excel 2016), если перед выбором ячейки (F1) нажать Esc (см. #22).
Но, разумеется, отказ от "допотопной" макрофункции более чем оправдан.
Изменено: sokol92 - 20.10.2021 15:55:22
Владимир
Замедление работы при реализации именованной формулы функцией ДВССЫЛ
 
Лучше скрыть формулы.
Владимир
Какая причина долгих расчетов без предварительного сохранения или открытия параметров экселя, почему скорость расчетов зависит от просмотра параметров экселя
 
У меня эффект, описанный в #20, возникает только в случае, если значение ячейки F1 меняется в режиме "Копирования" (Application.CutCopyMode=xlCopy). Если после копирования диапазона ячеек нажать на ESC, то пересчет формул производится без замедления.
Не думаю, что причина в конкретных формулах. Вероятно, выбор ячейки из списка в режиме копирования ячеек и является источником проблемы.
Изменено: sokol92 - 20.10.2021 15:52:00
Владимир
Проверка Range на наличие ошибок, VBA
 
Исправил.
Владимир
Установить порядок работы макросов
 
Для ожидания завершения запросов есть специальный метод CalculateUntilAsyncQueriesDone.
Изменено: sokol92 - 15.10.2021 16:14:25
Владимир
Проверка Range на наличие ошибок, VBA
 
Цитата
Jack Famous написал:
Вас тоже дядь Миша
Я сам учитель.  :)  
Владимир
Проверка Range на наличие ошибок, VBA
 
Можно, наверное, и через функции рабочего листа:
Код
' Возвращает True, если в диапазоне r есть ошибочные значения
Function ErrExists(ByVal r As Range) As Boolean
  On Error Resume Next
  Application.WorksheetFunction.Max (Application.Intersect(r, r.Parent.UsedRange))
  ErrExists = Err.Number <> 0
  On Error GoTo 0
End Function

Sub Test()
  Debug.Print ErrExists(Range("A:Z"))
End Sub
Изменено: sokol92 - 15.10.2021 16:45:24
Владимир
Переменная для Split'а, Variable for Split
 
Если взять достаточно длинную строку (аргумент Split), то время будет отличаться не существенно. Вероятно, для массива строк (spl) при присвоении делаются необходимые проверки.

Очистка памяти производится в фоновом режиме (в том числе, и после фиксации окончания работы макроса).
Изменено: sokol92 - 15.10.2021 14:27:58
Владимир
Как прописать сохранение файла
 
Если Вы выложите пример файла, то всё пойдет гораздо быстрее.
Владимир
Как получить из 2-х пересекающихся диапазонов непересекающиеся части?, Есть ли в VBA функция, обратная Intersect
 
Здравствуйте, Бахтиёр! Посмотрите это сообщение.
Владимир
Автофильтр и формат числа
 
Да, это так, автофильтр анализирует отображаемое значение ячейки.
Владимир
VBA проверка на число (по заданному региональному стандарту)
 
Макрос из #5 с разделителями Excel не общается. Если в ячейке число (или дата), то при передаче ячейки как параметра (или ее значения (value или value2) как параметра) он должен вернуть True.
Я проверял в системе Excel 2019 (64-), Win 10, windows-1252 (en-US).
Изменено: sokol92 - 13.10.2021 21:54:50
Владимир
VBA проверка на число (по заданному региональному стандарту)
 
С той же идеей (надо еще погонять как следует):
Код
Option Explicit
' Возвращает True для чисел и текстов, представимых как число (разделитель дробной доли - точка).
' False в иных случаях
Function IsNumberUS(ByVal arg) As Boolean
  If IsObject(arg) Then
    arg = arg.Value        ' параметр является объектом - ячейка (???)
  End If
  If Not IsArray(arg) Then ' массивы не обрабатываем (пока ???)
    Select Case VarType(arg)
      Case vbEmpty, vbBoolean, vbNull, vbError, vbUserDefinedType:
      Case vbString:
        arg = Trim(arg) ' пробелы слева и справа отбрасываем (???)
        If Not (arg Like "*[ ,]*") Then ' нет запятых и пробелов между цифрами
          IsNumberUS = IsNumeric(Replace(arg, ".", Mid(1.5, 2, 1)))
        End If
      Case Else ' числовые типы
        IsNumberUS = True
    End Select
  End If
End Function

Sub Test()
  Dim v
  For Each v In Array("0.5", "0,5", "  123.45 ", " -1e-14", Now, 25, "Hello!", "1 2")
    Debug.Print v, IsNumberUS(v)
  Next v
End Sub
Изменено: sokol92 - 13.10.2021 21:18:34
Владимир
VBA проверка на число (по заданному региональному стандарту)
 
Здравствуйте, Максим! Вопросы:

  • Такой текст допустим "123,456.78" (числа в локализации en_US)?
  • Что должна возвращать функция: True / False или число / False?
  • В Excel логические значения ячеек - самостоятельный базовый тип (не числа и не текст). Для них что возвращать?
  • Для пустых ячеек что возвращать?
В макросе из #1 изменение свойств объекта (Excel.)Application не влияет на поведение функции (VBA.)IsNumeric, которая руководствуется исключительно региональными настройками.
Изменено: sokol92 - 13.10.2021 20:33:25
Владимир
Замена точки на запятую при вставке в определенном столбце
 
Цитата
БМВ написал:
А оно зачем
А если пользователь вводит текст "1." (который менять не нужно) непосредственно в ячейку, а не вставляет из буфера обмена?
Изменено: sokol92 - 12.10.2021 17:05:17
Владимир
Не обновляются данные, полученные макросом через api
 
Любая старая дата. Взял из примера к описанию заголовка.
Цель - не использовать кеш запросов. Иначе при повторной отсылке одного и того же запроса может возвращаться прежний результат.
Изменено: sokol92 - 12.10.2021 16:59:23
Владимир
Не обновляются данные, полученные макросом через api
 
Что-то такое (чтобы не брал из кеша):
Код
httpObject.setRequestHeader "If-Modified-Since", "Mon, 18 Jul 2016 02:36:04 GMT"
Изменено: sokol92 - 12.10.2021 16:19:03
Владимир
Макрос не подставляет имя файла при сохранении.
 
Попробуйте заменить строку 2 на:
Код
sAttachment = Application.GetSaveAsFilename(InitialFileName:=wb.Path & "\" & ActiveSheet.Name & ".xlsx", fileFilter:="Excel book(*.xlsx), *.xlsx")
Владимир
Глюк при вставке текстовой строки в ячейку Excell
 
Про режим редактирования я не догадался (в исходном сообщении на это был намек).
Владимир
Глюк при вставке текстовой строки в ячейку Excell
 
У меня вставляется нормально. Excel 2016 (32-), Win 10. Маловероятно, что проблема в Excel. Возможно, какие-то программы, работающие с буфером обмена.
Нормально вставляется и в Excel 2019 (64-), en_US (кодировка windows-1252), Win 10.
Изменено: sokol92 - 12.10.2021 14:32:08
Владимир
Замена точки на запятую при вставке в определенном столбце
 
Цитата
БМВ написал: А именно вставку отследить не отследишь
Владимир (ZVI) показывал, как можно посмотреть на (последний) текст в буфере команд Undo.
Владимир
Перечислить числа, указанные в диапазоне a-b
 
Цитата
БМВ написал:
для периода в 7 лет и классических функций
А что, перебор уже под запретом?
Код
=ЛЕВБ(D2;4)
& ЕСЛИ(ЛЕВБ(D2;4)+1<=--ПРАВБ(D2;4); ", " & ЛЕВБ(D2;4)+1;)
& ЕСЛИ(ЛЕВБ(D2;4)+2<=--ПРАВБ(D2;4); ", " & ЛЕВБ(D2;4)+2;)
& ЕСЛИ(ЛЕВБ(D2;4)+3<=--ПРАВБ(D2;4); ", " & ЛЕВБ(D2;4)+3;)

и т.д.
Изменено: sokol92 - 12.10.2021 13:16:48
Владимир
ячейки с зада :), и такое бывает
 
Следы бота.
Владимир
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 127 След.
Наверх