Ответы пользователя по тегу Excel
  • Магическая ошибка 1004?

    @lrv
    Зачем вам пользовать Range, когда вы обращаетесь к одной ячейке. Листы лучше приучайте себя именовать всегда через Set. Используйте Cells вместо Range.

    Set WBMax = thisworkbook.worksheets("max") 
    Set WBSheet = thisworkbook.worsheets("sheet")
    
    If WBMax.Cells(1,3).Value = WBMSheet.Cells(1,2).Value Then
         WBMax.Cells(3,3).Value = WBMSheet.Cells(3,2).Value
         WBMax.Cells(3,3).Interior.Color = RBG(1,1,1)
    Ответ написан
    1 комментарий
  • Есть ли готовые решения,как правильно построить логику учета данных?

    @lrv
    Excel - это не надежно. Лучше сделайте таблицу в БД ингридиент+приход+расход. Дальше уже пишите запрос, который сформирует даты и часы за период и наложит сверху остатки из вашей таблицы.
    Ответ написан
    Комментировать
  • Как выявить рабочий диапазон?

    @lrv
    Самый простой способ это проверять цвет ячейки. Если он серый то пропускать его, иначе вводить значение. Пишешь два цикла
    Do while ActiveSheet.Cells(i,1).value<>“”
    Do while ActiveSheet.cells(1,j).value <>“”
    И внутри if ActiveSheet.cells(i,j).Interior.Color <> RGB(,,) then.
    Но это не быстро работать будет, потому что работаете с листом. Быстрее будет с массивом. Там позамороченнее.
    Ответ написан
    2 комментария
  • Google Sheets - Как сделать взаимозависимые ячейки с разных листов одной книги?

    @lrv
    Можно написать макрос, который будет срабатывать при изменении значений в ячейках. Private Sub Worksheet_Change(ByVal Target As Range). Указываете рендж в котором надо отследить изменения и потом пишете условие попадает ли ячейка в указанный диапазон. Если попадает, загоняйте с первого листа значенияв массив, удаляйте все на втором и вставляйте из массива данные в тот же диапазон. Только не циклом, а долго работать будет. Копируйте и вставляйте через Range.
    P.s. Макрос на изменения значений в ячейках вставляется в модуль листа.
    Ответ написан
    Комментировать