Excel это не сложно
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
19.04.2024, 19:41:36

Войти
Хотите поблагодарить участника за дельный совет? Нажмите [Повысить]. Так вы заслуженно поднимите репутацию активному участнику.
33 242 Сообщений в 5 457 Тем от 6 758 Пользователей
Последний пользователь: Сергей2662
*
Перейти на сайт Хитрости Надстройка MulTEx Обучающие тренинги Наша группа ВКонтакте
Правила форума Начало Помощь Поиск Календарь Войти Регистрация Выйти
  Просмотр сообщений
Страниц: 1 [2] 3 4 ... 30
16  Основные форумы / Вопросы по Excel и VBA / Re:Определение положения разрыва страницы : 15.08.2018, 21:11:24
Верю всякому зверю, но тебе, ежу, погожу!  :D
17  Основные форумы / Вопросы по Excel и VBA / Re:Определение положения разрыва страницы : 15.08.2018, 14:43:05
Для того, чтобы правильно работало разбиение на страницы, нужно включить страничный режим. Ручками, или макросом.
Код: (vb)
    ActiveWindow.View = xlPageBreakPreview

18  Основные форумы / Вопросы по Excel и VBA / Re:Определение положения разрыва страницы : 15.08.2018, 10:44:25
Это не костыль. Это чистая случайность, что так сработало.
Ошибка не зависит от числа строк. Она возникает, когда последняя строка последней страницы совпадает с последней строкой UsedRange.
Код: (vb)
Sub q()
    With ActiveSheet
        On Error Resume Next
        last_break = .HPageBreaks(.HPageBreaks.Count).Location.Row
        If Err Then last_break = .HPageBreaks(.HPageBreaks.Count - 1).Location.Row
    End With
End Sub

19  Основные форумы / Вопросы по Excel и VBA / Re:Автоматический отступ текста в соответствие со структурой списка : 28.07.2018, 20:27:56
Код: (vb)
   For i = 1 To iLastRow
         Cells(i, 2).IndentLevel = Len(Cells(i, 1)) - Len(Replace(Cells(i, 1), ".", ""))
   Next


20  Основные форумы / Вопросы по Excel и VBA / Re:Проверка дат : 27.07.2018, 11:09:02
Не хватает понимания, почему требует объект
Да потому, что для проверки на Is Nothing, как минимум, нужно иметь объект
21  Основные форумы / Вопросы по Excel и VBA / Re:Проверка дат : 27.07.2018, 09:06:40
If b > a Is Nothing Then
Является ли выражение b > a не существующим объектом.
Так оно вообще объектом не является.
Код: (vb)
If b > a Then


Опять же, правильно ли вообще записал вот это выражение? У меня сомнения

Код: (vb)
Range(Target.Cells).Clear 

конечно нет
вместо диапазон(адрес) вы написали диапазон(диапазон)
Код: (vb)
Target.Clear
22  Основные форумы / Вопросы по Excel и VBA / Re:Проверка дат : 26.07.2018, 19:24:34
Во как! А я считал, что Target - это объект Range.
23  Основные форумы / Вопросы по Excel и VBA / Re:Удаление столбцов по условию : 24.07.2018, 18:25:34
Один за всех
Код: (vb)
Sub qq()
    Dim r1 As Range, r2 As Range
    ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
    Set r1 = Cells.Find("Кол-во единиц", LookAt:=xlWhole)
    Set r2 = Cells.Find("ВСЕГО затрат, руб.", LookAt:=xlWhole)
    Union(Range("B:F"), r1.EntireColumn.Offset(, 1).Resize(, r2.Column - r1.Column - 1), r2.EntireColumn.Offset(, 1).Resize(, 15)).Delete
End Sub
24  Основные форумы / Вопросы по Excel и VBA / Re:Как сделать формат по образцу? : 23.07.2018, 21:04:45
Обычно проблемной является эта часть
(это я знаю как делать)
Поскольку тут проблем нет, то наиболее правильным будет посвящение остальных в сию тайну, ибо и то, и другое можно делать разными способами, но применять для одной задачи 2 разных, идея не лучшая.
25  Основные форумы / Вопросы по Excel и VBA / Re:VBA Excel Макрос: распределение работ : 19.07.2018, 08:21:27
https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=107046&TITLE_SEO=107046-vba-excel-makrosy-raspredelenie-rabot&MID=886293&tags=Yandex+api%2CGoogle+Api%2C%D1%80%D0%B0%D1%81%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8F%2CExcel&logout_butt=%D0%92%D1%8B%D0%B9%D1%82%D0%B8&result=edit#message886293
http://www.excelworld.ru/forum/10-38877-1
26  Основные форумы / Вопросы по Excel и VBA / Re:Оптимизация быстродействия макроса по удалению строк : 02.07.2018, 09:56:02
Предыстория создания алгоритма http://www.excelworld.ru/forum/10-36917-1
27  Основные форумы / Вопросы по Excel и VBA / Re:Оптимизация быстродействия макроса по удалению строк : 01.07.2018, 23:22:43
Подготовлено 466 строк для удаления из массива в 1000 строк.
DelRowsRS - 0,0859375
d_rows_1 - 0,1015625
d_rows_2 - 0,078125
delFilter - 4,867188

УдалениеСтрокОднимМахом - 0,1796875
Подготовлено 4666 строк для удаления из массива в 10000 строк.
DelRowsRS - 1
d_rows_1 - 1,296875
d_rows_2 - 3,546875
УдалениеСтрокОднимМахом - 78,05469 Снят с дистанции
delFilter - 47,90625

Подготовлено 14000 строк для удаления из массива в 30000 строк.
DelRowsRS - 9,476563
d_rows_1 - 12,92188
d_rows_2 - 76,78906 Снят с дистанции
delFilter - 141,5078 Снят с дистанции

Фильтр сильно разочаровал  Грустный

Подготовлено 46666 строк для удаления из массива в 100000 строк.
DelRowsRS - 105,1563
d_rows_1 - 138,2578

Подготовлено 93334 строк для удаления из массива в 200000 строк.
DelRowsRS - 372,1094
d_rows_1 - 525,3906

Код: (vb)
Sub delFilter()
    Dim t!, lr&
    t = Timer
    Application.ScreenUpdating = False
    lr = Cells(Rows.Count, 1).End(xlUp).Row
    ActiveSheet.Range("A1:A" & lr).AutoFilter _
    Field:=1, Criteria1:=RGB(255, 255, 0), Operator:=xlFilterCellColor
    ActiveSheet.AutoFilter.Range.Offset(1).EntireRow.Delete
    ActiveSheet.AutoFilter.Range.AutoFilter
    Debug.Print "delFilter - " & Timer - t
    Application.ScreenUpdating = True
End Sub

Код: (vb)
Sub DelRowsRS()
    Dim lr&, n&, i&, ii&
    Dim sF$, s$, spl
    Dim k: k = 4
    Application.ScreenUpdating = False
    lr = Cells(Rows.Count, 1).End(xlUp).Row
    n = ActiveSheet.UsedRange.Row
    s = "A"
    For i = lr To n Step -1
         If Cells(i, 1).Interior.ColorIndex = 6 Then GoSub sRange
    Next
    If Len(s) Then sF = sF & "|" & Left(s, Len(s) - 2)
    If Len(sF) Then
        spl = Split(sF, "|")
        For i = 1 To UBound(spl)
            Range(spl(i)).EntireRow.Delete
            k = k + 1
        Next
    End If
    Application.ScreenUpdating = True
    Exit Sub
sRange:
                s = s & i & ",A"
            '        =====check len===============
            ii = ii + Len(Format(i, 0)) + 2
            If ii >= 248 Then
                sF = sF & "|" & Left(s, Len(s) - 2)
                s = Left(s, Len(s) - 2)
                ii = 0
                s = "A"
            End If
            '        ====================
Return
End Sub

Комментарий администратора убрал лишние $ в коде, чтобы код не задваивался.
28  Основные форумы / Вопросы по Excel и VBA / Re:Сделать запись в закрытом файле Excel с расширением .xlsm, .xlsb : 17.06.2018, 22:09:08
Нет, конечно.
И alex77755 уже показывал, где файл открывается.
29  Основные форумы / Вопросы по Excel и VBA / Re:Перевернуть переключатель (SpinButton) "вверх ногами". : 28.03.2018, 13:44:51
Да уж! Действительно проще.
Но вот подумать, что max может быть меньше min, это совсем не проще.  :D
30  Основные форумы / Вопросы по Excel и VBA / Re:Перевернуть переключатель (SpinButton) "вверх ногами". : 27.03.2018, 14:58:49
Или так
Код: (vb)
Private Sub ComboBox1_Change()
    Me.SpinButton1.Value = -Me.ComboBox1.ListIndex
End Sub

Private Sub SpinButton1_Change()
    Me.ComboBox1.ListIndex = -Me.SpinButton1.Value
End Sub

Private Sub UserForm_Initialize()
    Me.SpinButton1.Min = -Me.ComboBox1.ListCount + 1
    Me.SpinButton1.Max = 1
    Me.SpinButton1.Value = Me.SpinButton1.Max
End Sub
Страниц: 1 [2] 3 4 ... 30
Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Яндекс.Метрика Рейтинг@Mail.ru