Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 След.
Заливка фигур цветом условного форматирования формулой
 
Может, инструмент "камера" подойдет?
Удалить строку из двухмерного массива по условию VBA
 
Цитата
Duke2 написал:
какая-то проблема с размерностью массива
Обратите внимание на строку 16 кода, предложенного doober.
Склеить дату и время.
 
Цитата
Exo написал:
Как сравнить я понимаю.
То есть, Вы понимаете, как хранится дата/время? Достаточно сложить значение ячейки, содержащей дату, и ячейки, содержащей время. В результирующей ячейке выставить формат, отображающий дату и время ("ДД.ММ.ГГГГ ч:мм")
Указывать дату, в зависимости от времени печати документа
 
Off
Цитата

глория написал:
Все, уже не надо
Убивать?..
Указывать дату, в зависимости от времени печати документа
 
L7 был как пример дополнительного столбца на листе Лист2, чтобы растянуть и увидеть, как в зависимости от времени меняется и дата.
Во вновь выложенном файле у Вас в ячейку Лист1!E8 подтянуто время погрузки, поэтому в формулу можно подставить эту ячейку, т.е. в ячейку Лист1!C7
Код
=СЕГОДНЯ()+ОКРУГЛ((ЧАС(ТДАТА())-ЧАС(E8))/24;0)
PS. Пока писал, Вы выложили новый файл, но суть та же - в ячейку Лист1!B5
Код
=СЕГОДНЯ()+ОКРУГЛ((ЧАС(ТДАТА())-ЧАС(B6))/24;0)
Изменено: Alec Perle - 28 Фев 2020 13:40:01
Указывать дату, в зависимости от времени печати документа
 
Код
=СЕГОДНЯ()+ОКРУГЛ((ЧАС(ТДАТА())-ЧАС(F2))/24;0)
Формулу можно вставить в ячейку L2 и растянуть вниз
Указывать дату, в зависимости от времени печати документа
 
Тогда без условий:
Код
=ТДАТА()+ВРЕМЯ(4;0;0)

Некорректно открывается файл - в фомулах, появляется префикс _xlfn.IFS.
 
Цитата
Galina15 написал:
Некорректно открывается
Открывается, вероятно, максимально корректно в данных условиях. Дело в том, что функция IFS (ЕСЛИМН) появилась в Excel 2016.
Указывать дату, в зависимости от времени печати документа
 
Здесь макрос и не нужен (раз используется =сегодня()+1).
Удаление объектов (Shape) находящихся в конкретном диапазоне листа.
 
Перебор, в принципе, не так уж и долог, особенно, если не забыть вовремя выйти из цикла -  например, зачем продолжать перебирать, если объект найден и уничтожен.
Предполагаю, что Intersect не самый быстрый метод для установления факта совпадения ячеек. Например, даже сравнение адресов (а они String) дает прирост скорости примерно на треть:
Код
Shape.TopLeftCell.Address = Cell.Address
ка ведь можно сравнить и номера строк и столбцов (не проверял).
Цитата
БМВ написал:
вставляется разово пачка значений,
Можно внутри цикла перебора объектов написать цикл перебора вставляемых значений, например, хранимых в коллекции и удаляемых оттуда по мере нахождения нужных объектов. Холостой цикл будет только один...
Макрос скрывает или показывает нужные строки, если в первых ячейках написано слово "УБРАТЬ", почему тормозит макрос?
 
У Вас для каждой строки из перебираемых изменяется признак скрытия/отображения независимо от необходимости. Попробуйте проверять необходимость скрытия,отображения (пример только для первого цикла):
Код
   For i = 104 To 116
      With .Rows(i)
        If .Cells(1, 2) = "УБРАТЬ" Then
           If Not .Hidden Then .Hidden = True
        Else
           If .Hidden Then .Hidden = False
        End If
      End With
    Next

И нет необходимости объявлять вторую переменную i2, если и i и i2 используются только в циклах, достаточно использовать одну (это, правда, не влияет на скорость).
VBA. Неверно считается кол-во столбцов, range("C5:E5,G5,I5:M5").columns.count
 
Это уже зависит от постановки задачи - что именно нужно. Например, я вижу выделенные две таблицы, и не факт, что пересечение их столбцов имеет смысл. А так, повторюсь
Цитата
Alec Perle написал:
Ради справедливости
VBA. Неверно считается кол-во столбцов, range("C5:E5,G5,I5:M5").columns.count
 
Ради справедливости, пример из справочной системы:
Код
This example displays the number of columns in the selection on 
Sheet1. If more than one area is selected, the example loops through each 
area.Worksheets("Sheet1").Activate
areaCount = Selection.Areas.Count
If areaCount <= 1 Then
    MsgBox "The selection contains " & _
        Selection.Columns.Count & " columns."
Else
    For i = 1 To areaCount
        MsgBox "Area " & i & " of the selection contains " & _
            Selection.Areas(i).Columns.Count & " columns."
    Next i
End If
А так да, идея со строкой интересная
rubberduck - COM-надстройка для VBA
 
Нее - шевелится))
rubberduck - COM-надстройка для VBA
 
Хотелось бы посмотреть.... Но я "старовер" на WinXP (дома три компа, но очень слабых для более новых версий), а программа требует Net Framework 4.6. М.б. есть способ установить с Net 4.0?
Проблема с циклической ссылкой
 
Цитата
bigfoot написал:
Стоит добавить суммирование и все..
Проблема совсем не в суммировании. Проблема в добавлении в формулу в ячейке D8 ссылки на ячейку D85. От этого и пляшите, можно на листочке бумаги. Примерно так:
Формула в ячейке D85 имеет ссылки на ячейки (зависит от) D86 и D87. В ячейке D87 пусто.
D86 зависит от 'Инвестиции (1st)'!D15
'Инвестиции (1st)'!D15 зависит от D8 (точнее 'Инвестиции (1st)'!D8) и 'Initial data '!$H73
далее также проверяем от каких ячеек зависят 'Инвестиции (1st)'!D8 и 'Initial data '!$H73 и т.д.
В конечном итоге получим зависимость от ячейки 'Expenses (1st)'!D8. Это и есть циклическая ссылка.
А дальше
Цитата
vikttur написал:
изменить логику, разорвав цепочку.
Изменено: Alec Perle - 23 Янв 2020 23:22:45
Как обнулить (не отключить) накопленные события книги
 
Наверное, тем, что не стоит верить тому, что очередное (ненужное) событие произойдет именно меньше, чем через секунду. Ну мало ли, древняя машинка, параллельно еще видео конвертится, да еще своп невовремя...
А, может, обработку повесить на событие листа (Worksheet_Calculate) (что, по сути, то же что и предложено)?
Как обнулить (не отключить) накопленные события книги
 
А проверить, пересчет какой книги вызвал событие?
Код
If Not Sh Is sh1 then Exit Sub
После выполнения Beforerightclick что нужно добавить в код что бы не появлялось контекстное меню
 
Код
Option Explicit
в помощь...
Прерывание отображения работы макроса
 
Мне не кажется, что название темы должно звучать с точностью до наоборот? Для "прерывания отображения..." как раз достаточно:
Цитата
Dmitriy XM написал:
Application.ScreenUpdating = False,
однако, вопрос в другом, а, так как:
Цитата
Михаил Комиссаров написал:
DoEvents - помогло. Файл перестал зависать
и, самое главное:
Цитата
Михаил Комиссаров написал:
как правильно это можно обозвать
я бы предложил название темы "Избавиться от прерывания отображения при работе с макросом".
После выполнения Beforerightclick что нужно добавить в код что бы не появлялось контекстное меню
 
Совсем "после" не получится, а вот во время:
Код
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
  'тут наша обработка
  Cancel = True
End Sub
Перебор всех значений из ячеек и выворка уникальных
 
Цитата
Malkov111123 написал:
до 150 тысяч строк
Что-то я не представляю, как при таком количестве исходных данных можно не использовать какой-либо символ или букву, т.е. результат изначально - все возможные буквы и символы...
Как скопировать формулу
 
Можно так:
1. Вставить пустой столбец между столбцами C и D
2. Скопировать диапазон № 2 и и вставить туда, где  № 3
3. Удалить ранее вставленный столбец
как извлечь картинку из Excel?, без фотошопа
 
А зачем пересохранять в html? Открыть xlsx файл с помощью архиватора (можно сначала переименовать xlsx в zip) и извлечь из папки xl/media... А дальше как советовали из png в jpeg
Оператор "Is" в VBA возвращает "False" для одинаковых диапазонов
 
Цитата
vikttur написал: Похоже на правду.
Тест:
Код
Sub sub1()
  Dim R1 As Range
  Dim R2 As Range
  Set R1 = Range("A1")
  Set R2 = Range("A1")
  MsgBox ObjPtr(R1) & vbCr & ObjPtr(R2)
End Sub
Цитата
vikttur написал: не происходит с листом
Видимо, потому что лист как-бы член коллекции, а диапазон вычисляется в зависимости от параметра
Оператор "Is" в VBA возвращает "False" для одинаковых диапазонов
 
Полагаю, свойство Range при каждом обращении создает новый объект, поэтому для Is они разные.
Уведомление об открытии файла Excel
 
Цитата
vikttur написал:
сопроводительный текст
Цитата
"письмо не может быть отправлено, так как сотрудник ФСБ, проверяющий вашу почту временно, отлучился"
Список листов книги с помощью макроса
 
Не вдаваясь в моменты использования Select и ActiveSheet - приведенная процедура выводит имена всех рабочих листов, как и предполагается. Но выводит их в одну и ту же ячейку, поэтому и остается в результате только имя последнего листа.
Что Вы хотите получить? Имена книг в разных ячейках или в одной? Как раз не хватает примера того, что необходимо получить.
Судя по замене Cells(i,2) на Cells(9,2) (видимо у Вас в вопросе "на" пропущено) - в одной ячейке. Тогда:
Код
Sub List()
 
Sheets("Task 3 (VBA)").Select
Range("Table1[Names of tabs in this file]").Select
 
Dim i As Integer
For i = 1 To ActiveWorkbook.Worksheets.Count
  If i>1 Then ActiveSheet.Cells(9, 2).Value = ActiveSheet.Cells(9, 2).Value & vbCr 'Добавляем символ переноса строк
  ActiveSheet.Cells(9, 2).Value = ActiveSheet.Cells(9, 2).Value & ActiveWorkbook.Worksheets(i).Name
Next i
End Sub
Если это так, то название темы надо поправить. "Список имен рабочих листов книги в одной ячейке с помощью макроса"
Немодальная UserForm без шапки, с прозрачностью и возможностью перетаскивания
 
Off
Цитата
БМВ написал:
- неодализм сплошной  
Так ведь с ошибкой написано. Неодуализм  :)  
Получить тип данных, записанных в ячейке
 
Судя по вопросу, Вы хотите получит тип данных в ячейке, а вот кодом получаете тип данных ячейки, который, как раз, и есть Range. Нужно понимать, что
Код
[B2]
эквивалентно
Код
Range("B2")
а свойство Range возвращает объект типа Range. У этого объекта есть свойство Value, с помощью которого можно получить доступ к значению в ячейке, Ваш код должен выглядеть так
Код
Sub Data_type()
    [K2] = TypeName([B2].Value)
    [K3] = TypeName([G2].Value)
End Sub        


Название темы, наверное, надо изменить на "Получить название типа данных в ячейке"
Страницы: 1 2 3 4 5 6 След.
Наверх