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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 291 След.
Многоуровневый выпадающий список
 
Цитата
написал:
это так специально?
Нижняя часть не нужна.
Копирование значения с фиксацией из динамической ячейки
 
Цитата
написал:
Существует ли возможность
Да.
Событие Worksheet.Change (Excel) | Microsoft Learn
Многоуровневый выпадающий список
 
В Упр3 2 надо заменить на 1.
Как заменить, ускорить формулу =СЧЁТЕСЛИ
 
Цитата
написал:
файл в формате txt и сверять также с файлом в формате txt, а вот чтобы вывод условно 10 самых частых комбинаций уже был в excel? или я сильно многого хочу от excel?
Почему ж сразу от excel?  :D
Код
Option Explicit

Sub CountTXT()
    Dim fullKeys As String, fullData As String

    Dim aFiles As Variant
    aFiles = ShowFileDialog(True)
    If IsEmpty(aFiles) Then Exit Sub
    
    fullKeys = aFiles(1)
    If UBound(aFiles) = 1 Then
        aFiles = ShowFileDialog(False)
        If IsEmpty(aFiles) Then Exit Sub
        fullData = aFiles(1)
    Else
        fullData = aFiles(2)
    End If
    CloseEmptyWb
    
    Dim dic As Object
    Set dic = ReadTXT(fullKeys, fullData)
    
    Dim aMax As Variant
    aMax = GetMaxArray(dic, 10)
    
    PrintArray aMax, Workbooks.Add(1).Sheets(1).Cells(1, 1)
End Sub

Private Sub PrintArray(arr As Variant, rr As Range)
    Set rr = rr.Resize(UBound(arr, 1), UBound(arr, 2))
    rr.Value = arr
End Sub

Private Function GetMaxArray(dic As Object, nMax As Long) As Variant
    Dim krr As Variant, jrr As Variant, mm As Long
    krr = dic.Keys()
    jrr = dic.Items()
    
    Dim res As Variant, ya As Long, jj As Long
    ReDim res(1 To nMax, 1 To 2)
    
    For ya = 1 To nMax
        mm = WorksheetFunction.Max(jrr)
        If mm = 0 Then Exit For
        jj = WorksheetFunction.Match(mm, jrr, 0)
        jj = jj - 1
        res(ya, 1) = krr(jj)
        res(ya, 2) = jrr(jj)
        jrr(jj) = 0
    Next
    GetMaxArray = res
End Function
 
Private Function ReadTXT(fullKeys As String, fullData As String) As Object
    Const BUFFSIZE = 100000
    Dim fso As Object 'New FileSystemObject
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    Dim ss As String, arr As Variant, ya As Long
    
    Dim dic As Object
    Set dic = CreateObject("Scripting.Dictionary")
     
    Application.StatusBar = "Читаю файл " & fso.GetBaseName(fullKeys)
    With fso.OpenTextFile(fullKeys, 1)
        Do
            If .AtEndOfStream Then Exit Do
            ss = .Read(BUFFSIZE)
            If Not .AtEndOfStream Then ss = ss & .ReadLine
            arr = Split(ss, vbCrLf)
            For ya = LBound(arr) To UBound(arr)
                If arr(ya) <> "" Then
                    dic(arr(ya)) = 0
                End If
            Next
            DoEvents
        Loop
        .Close
    End With
    
    Application.StatusBar = "Читаю файл " & fso.GetBaseName(fullData)
    With fso.OpenTextFile(fullData, 1)
        Do
            If .AtEndOfStream Then Exit Do
            ss = .Read(BUFFSIZE)
            If Not .AtEndOfStream Then ss = ss & .ReadLine
            arr = Split(ss, vbCrLf)
            For ya = LBound(arr) To UBound(arr)
                If arr(ya) <> "" Then
                    If dic.Exists(arr(ya)) Then
                        dic(arr(ya)) = dic(arr(ya)) + 1
                    End If
                End If
            Next
            DoEvents
        Loop
        .Close
    End With
    Application.StatusBar = False
    Set ReadTXT = dic
End Function
 
Private Sub CountRange(condRange As Range, dataRange As Range, outputRange As Range)
    Dim arr As Variant
    arr = Intersect(condRange, condRange.Parent.UsedRange).Value
     
    Dim brr As Variant
    brr = Intersect(dataRange, dataRange.Parent.UsedRange).Value
     
    Dim dic As Object
    Set dic = CreateObject("Scripting.Dictionary")
     
    Dim ya As Long
    For ya = 1 To UBound(arr, 1)
        dic(arr(ya, 1)) = 0
    Next
 
    For ya = 1 To UBound(brr, 1)
        If dic.Exists(brr(ya, 1)) Then
            dic(brr(ya, 1)) = dic(brr(ya, 1)) + 1
        End If
    Next
 
    ReDim brr(1 To UBound(arr, 1), 1 To 1)
    For ya = 1 To UBound(arr, 1)
        brr(ya, 1) = dic(arr(ya, 1))
    Next
     
    outputRange.Resize(UBound(brr, 1), UBound(brr, 2)).Value = brr
End Sub

Private Function ShowFileDialog(bAllowMultiSelect As Boolean) As Variant
    'ShowFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
         
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
         
    Static sInitialFileName As String
    If sInitialFileName = "" Then sInitialFileName = ThisWorkbook.Path & "\"
         
    Dim oFD As FileDialog
    Dim lf As Long
    'назначаем переменной ссылку на экземпляр диалога
    Set oFD = Application.FileDialog(msoFileDialogFilePicker)
    With oFD 'используем короткое обращение к объекту
    'так же можно без oFD
    'With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = bAllowMultiSelect
        .Title = IIf(bAllowMultiSelect, "Выбрать файлы", "Выбрать файл") 'заголовок окна диалога
        .Filters.Clear 'очищаем установленные ранее типы файлов
        '.Filters.Add "Excel files", "*.xls*", 1 'устанавливаем возможность выбора только файлов Excel
        .Filters.Add "Text files", "*.txt", 1 'добавляем возможность выбора текстовых файлов
        .FilterIndex = 1 'устанавливаем тип файлов по умолчанию - Text files(Текстовые файлы)
        .InitialFileName = sInitialFileName
        .InitialView = msoFileDialogViewDetails 'вид диалогового окна(доступно 9 вариантов)
        If .Show = 0 Then Exit Function 'показывает диалог
        Dim arr As Variant, sName As String
        'цикл по коллекции выбранных в диалоге файлов
        For lf = 1 To .SelectedItems.Count
            sName = fso.GetFileName(.SelectedItems(lf))
            If Left(sName, 2) <> "~$" Then
                If sName <> ThisWorkbook.Name Then
                    If IsEmpty(arr) Then
                        ReDim arr(1 To 1)
                    Else
                        ReDim Preserve arr(1 To UBound(arr) + 1)
                    End If
                    arr(UBound(arr)) = .SelectedItems(lf)  'считываем полный путь к файлу
                    sInitialFileName = arr(UBound(arr))
                End If
            End If
        Next
        ShowFileDialog = arr
    End With
End Function

Private Sub CloseEmptyWb()
    Dim wb As Workbook
    For Each wb In Application.Workbooks
        If wb.Path = "" Then wb.Close False
    Next
End Sub
Скопировать данные(лист) из выбранной книги
 
Цитата
написал:
даже в диспетчере имён была создана формула
Замена формул на листе не решает задачу изменения в диспетчере имён. Лучше менять связи:
Код
wbTarget.ChangeLink Name:=shSource.Name, NewName:=wbTarget.Name, Type:=xlExcelLinks

Скрытый текст
Формула массива: Суммы по строкам
 
Код
=СУММ(E4:E1048576)
И это не формула массива.
Скопировать данные(лист) из выбранной книги
 
Скрытый текст
Скопировать данные(лист) из выбранной книги
 
Код
Option Explicit

Private Const sInitialFileName = "E:\Сервер\Сервер 1\Сервер 2\Сервер 3\Сервер 4\РАБОЧИЕ\Журнал выездов\"
Private Const sheetNames = "Фрукты;Овощи"
  
Sub Копировать_по_журналам()
    Dim wbSource As Workbook, wbTarget As Workbook, c As Range, arrWB(), w As Variant, sheetName As Variant
    arrWB = ShowFileDialog()
    
    Set wbTarget = ActiveWorkbook
    With Application
       .EnableEvents = False
       .Calculation = xlCalculationManual
       .ScreenUpdating = False
       .Visible = False
            
        For Each w In arrWB
            Set wbSource = Workbooks.Open(w)  ' Этот метод копирует данные в книги находящиеся по пути с главной
            For Each sheetName In Split(sheetNames, ";")
                wbSource.Worksheets(sheetName).Cells.Copy wbTarget.Worksheets(sheetName).Cells 'копируем все данные с активного листа
                For Each c In wbTarget.Worksheets(sheetName).Cells.SpecialCells(xlCellTypeFormulas, 23)
                    c.FormulaLocal = Replace(c.FormulaLocal, "[" & ThisWorkbook.Name & "]", "")
                Next c
            Next
            wbSource.Close False
        Next w
            
        .EnableEvents = True
        .Calculation = xlCalculationAutomatic
        .ScreenUpdating = True
        .Visible = True
    End With
    MsgBox "Готово"
End Sub
  
Private Function ShowFileDialog() As Variant
    'ShowFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
      
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
      
    Dim oFD As FileDialog
    Dim lf As Long
    'назначаем переменной ссылку на экземпляр диалога
    Set oFD = Application.FileDialog(msoFileDialogFilePicker)
    With oFD 'используем короткое обращение к объекту
    'так же можно без oFD
    'With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = True
        .Title = "Выбрать файлы" 'заголовок окна диалога
        .Filters.Clear 'очищаем установленные ранее типы файлов
        .Filters.Add "Excel files", "*.xls*", 1 'устанавливаем возможность выбора только файлов Excel
        '.Filters.Add "Text files", "*.txt", 2 'добавляем возможность выбора текстовых файлов
        .FilterIndex = 1 'устанавливаем тип файлов по умолчанию - Text files(Текстовые файлы)
        .InitialFileName = sInitialFileName
        .InitialView = msoFileDialogViewDetails 'вид диалогового окна(доступно 9 вариантов)
        If .Show = 0 Then Exit Function 'показывает диалог
        Dim arr As Variant, sName As String
        'цикл по коллекции выбранных в диалоге файлов
        For lf = 1 To .SelectedItems.Count
            sName = fso.GetFileName(.SelectedItems(lf))
            If Left(sName, 2) <> "~$" Then
                If sName <> ThisWorkbook.Name Then
                    If IsEmpty(arr) Then
                        ReDim arr(1 To 1)
                    Else
                        ReDim Preserve arr(1 To UBound(arr) + 1)
                    End If
                    arr(UBound(arr)) = .SelectedItems(lf)  'считываем полный путь к файлу
                End If
            End If
        Next
        ShowFileDialog = arr
    End With
End Function
Поиск позиции отвечающую нескольким условиям
 
Если дело только в количестве строк, то так:
Код
=ИНДЕКС(C:C;10000-МАКС((МК[Каркас]=Таблица6[@Каркас])*(МК[Дата]<=Таблица6[@Дата]-1)*(МК[Шт]>=Таблица6[@Шт])*(10000-СТРОКА(МК[Каркас]))))
Многоуровневый выпадающий список
 
Тогда так.
Формирование сводной спецификации из нескольких адресных
 
Пишу в личку.
Как заменить, ускорить формулу =СЧЁТЕСЛИ
 
Код
Option Explicit

Sub CountAD()
    CountRange Range("A2:A19865"), Range("D1:D200000"), Range("B2")
End Sub

Sub CountRange(condRange As Range, dataRange As Range, outputRange As Range)
    Dim arr As Variant
    arr = Intersect(condRange, condRange.Parent.UsedRange).Value
    
    Dim brr As Variant
    brr = Intersect(dataRange, dataRange.Parent.UsedRange).Value
    
    Dim dic As Object
    Set dic = CreateObject("Scripting.Dictionary")
    
    Dim ya As Long
    For ya = 1 To UBound(arr, 1)
        dic(arr(ya, 1)) = 0
    Next

    For ya = 1 To UBound(brr, 1)
        If dic.Exists(brr(ya, 1)) Then
            dic(brr(ya, 1)) = dic(brr(ya, 1)) + 1
        End If
    Next

    ReDim brr(1 To UBound(arr, 1), 1 To 1)
    For ya = 1 To UBound(arr, 1)
        brr(ya, 1) = dic(arr(ya, 1))
    Next
    
    outputRange.Resize(UBound(brr, 1), UBound(brr, 2)).Value = brr
End Sub
Формула определения действия в промежутке времени
 
Код
=ЕСЛИ(И(ДАТАЗНАЧ(ПРАВСИМВ($A$1;10))>=ЕСЛИ(ЕЧИСЛО(A4);A4;ДАТАЗНАЧ(A4));ДАТАЗНАЧ(ПРАВСИМВ($A$2;10))<=ЕСЛИ(ЕЧИСЛО(B4);B4;ДАТАЗНАЧ(B4)));"действовало";
ЕСЛИ(ИЛИ(ДАТАЗНАЧ(ПРАВСИМВ($A$1;10))>ЕСЛИ(ЕЧИСЛО(B4);B4;ДАТАЗНАЧ(B4));ДАТАЗНАЧ(ПРАВСИМВ($A$2;10))<ЕСЛИ(ЕЧИСЛО(A4);A4;ДАТАЗНАЧ(A4)));"не действовало";
"в части действовало"))
Построчный поиск уникальных значений с заданным критерием
 
Цитата
написал:
макрос или формулы - не столь важно
Код
Option Explicit

Sub Построчный_поиск()
    CloseEmptyWb
    Dim rSource As Range
    On Error Resume Next
    Set rSource = Application.InputBox("Выберите диапазон:", "Построчный_поиск", Selection.Address(0, 0, xlA1), Type:=8)
    Set rSource = Intersect(rSource, rSource.Parent.UsedRange)
    Set rSource = rSource.Areas(1)
    On Error GoTo 0
    If rSource Is Nothing Then Exit Sub
    If rSource.Columns.Count < 3 Then Exit Sub
    
    Dim values As Variant, dic As Object
    values = rSource.Value
    Set dic = CreateObject("Scripting.Dictionary")
    
    Dim yv As Long, xv As Long
    For yv = 1 To UBound(values, 1) - 1
        If values(yv, 1) <> "" Then
            If values(yv, 2) = "Длина" Then
                If values(yv + 1, 2) = "Кол-во" Then
                    For xv = 3 To UBound(values, 2)
                        If values(yv, xv) <> "" Then
                            If Not IsEmpty(values(yv + 1, xv)) Then
                                If IsNumeric(values(yv + 1, xv)) Then
                                    If Not dic.Exists(values(yv, 1)) Then
                                        Set dic(values(yv, 1)) = CreateObject("Scripting.Dictionary")
                                    End If
                                    dic(values(yv, 1))(values(yv, xv)) = dic(values(yv, 1))(values(yv, xv)) + values(yv + 1, xv)
                                End If
                            End If
                        End If
                    Next
                    
                    yv = yv + 1
                End If
            End If
        End If
    Next
    
    If dic.Count = 0 Then Exit Sub
    OutputDic dic, Workbooks.Add(1).Sheets(1).Cells(1, 1), rSource
End Sub

Private Sub OutputDic(dic As Object, rTarget As Range, rSource As Range)
    Dim yd As Long, xa As Long, bic As Object
    For yd = 0 To dic.Count - 1
        Set bic = dic.Items()(yd)
        If xa < bic.Count Then xa = bic.Count
    Next
    If xa = 0 Then Exit Sub
    
    Dim arr As Variant, ya As Long
    yd = 0
    ReDim arr(1 To 2 * dic.Count, 1 To 2 + xa)
    For ya = 1 To UBound(arr, 1) Step 2
        arr(ya + 0, 1) = dic.Keys()(yd)
        arr(ya + 0, 2) = "Длина"
        arr(ya + 1, 2) = "Кол-во"
        Set bic = dic.Items()(yd)
        For xa = 0 To bic.Count - 1
            arr(ya + 0, 3 + xa) = bic.Keys()(xa)
            arr(ya + 1, 3 + xa) = bic.Items()(xa)
        Next
        
        yd = yd + 1
    Next
    
    Set rTarget = rTarget.Resize(UBound(arr, 1), UBound(arr, 2))
    rSource.Cells(1, 3).Resize(2, 1).Copy rTarget
    rSource.Resize(2, 2).Copy rTarget.Columns(1).Resize(, 2)
    
    rTarget.Value = arr
    rTarget.Columns(1).EntireColumn.AutoFit
    rTarget.Parent.Parent.Saved = True
End Sub

Private Sub CloseEmptyWb()
    Dim wb As Workbook
    For Each wb In Application.Workbooks
        If wb.Path = "" Then wb.Close False
    Next
End Sub
Построчный поиск уникальных значений с заданным критерием
 
Сумму по строкам "Кол-во" можно получить формулой.
В ячейку D93 вставьте формулу и протяните до ячейки O93:
Код
=СУММЕСЛИМН($D$46:$D$85;$B$46:$B$85;$B92;$D$45:$D$84;D92)+СУММЕСЛИМН($E$46:$E$85;$B$46:$B$85;$B92;$E$45:$E$84;D92)+СУММЕСЛИМН($F$46:$F$85;$B$46:$B$85;$B92;$F$45:$F$84;D92)
перемещение рядов лежащих друг под другом в горизонтальные по ключу
 
Код
=ЕСЛИОШИБКА(ИНДЕКС(таб_совм!$B$1:$G$23;СТРОКА(таб_совм!$A$24)-НАИБОЛЬШИЙ((таб_совм!$A$9:$A$23=$K7)*(СТРОКА(таб_совм!$A$24)-СТРОКА(таб_совм!$A$9:$A$23));2+ЦЕЛОЕ((СТОЛБЕЦ()-СТОЛБЕЦ($R$1))/(СТОЛБЕЦ($X$1)-СТОЛБЕЦ($R$1))));1+ОСТАТ((СТОЛБЕЦ()-СТОЛБЕЦ($R$1));(СТОЛБЕЦ($X$1)-СТОЛБЕЦ($R$1))));"")
Цитата
написал:
можно попросить быть снисходительнее
Я же ещё ничего не сказал!  :D  :D  :D  
Поиск позиции отвечающую нескольким условиям
 
Два раза вычитаем из 100 для нахождения первого подходящего значения.
МАКС(...СТРОКА()) - вернёт максимальную строку, удовлетворяющую условиям.
100-МАКС(...100-СТРОКА()) - вернёт первую строку, удовлетворяющую условиям.
Макрос перезаписать файл при сохранении
 
Код
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Const postFix = "_Связь"
    
    If InStr(Me.Name, postFix) = 0 Then
        Application.DisplayAlerts = False
        Me.SaveCopyAs "C:\Users\Volna\Desktop\БД\Сохранение\" & Left(Me.Name, InStrRev(Me.Name, ".") - 1) & postFix & Mid(Me.Name, InStrRev(Me.Name, "."))
        Application.DisplayAlerts = True
    End If
End Sub
Макрос перезаписать файл при сохранении
 
Код
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Const sPATH = "C:\Users\Volna\Desktop\БД\Сохранение\"
    
    If Me.Path & "\" <> sPATH Then
        Application.DisplayAlerts = False
        Me.SaveCopyAs sPATH & Left(Me.Name, InStrRev(Me.Name, ".") - 1) & "_Связь" & Mid(Me.Name, InStrRev(Me.Name, "."))
        Application.DisplayAlerts = True
    End If
End Sub
Многоуровневый выпадающий список
 
Во вложении зависимы многоуровневые списки.
Поиск позиции отвечающую нескольким условиям
 
В ячейку M3 вставьте формулу массива(Ctrl+Shift+Enter) и протяните до ячейки M10:
Код
=ИНДЕКС(B:B;100-МАКС((Таблица2[@Наименование]=Таблица1[Наименование])*(Таблица2[@Дата]<=Таблица1[Дата])*(Таблица2[@[Кол-во]]<=Таблица1[Шт. в паспорте])*(100-СТРОКА(Таблица1[Наименование]))))
Остаток. В ячейку E3 вставьте формулу и протяните до ячейки E63:
Код
=[@[Шт. в паспорте]]-СУММЕСЛИМН(Таблица2[Кол-во];$M$3:$M$10;[@[Номер паспорта]])
перемещение рядов лежащих друг под другом в горизонтальные по ключу
 
Или одна формула на все столбцы.
В ячейку R7 вставьте формулу массива и протяните до ячейки AC9:
Код
=ЕСЛИОШИБКА(ИНДЕКС($C$1:$H$21;СТРОКА($B$22)-НАИБОЛЬШИЙ(($B$7:$B$21=$K7)*(СТРОКА($B$22)-СТРОКА($B$7:$B$21));2+ЦЕЛОЕ((СТОЛБЕЦ()-СТОЛБЕЦ($R$1))/(СТОЛБЕЦ($X$1)-СТОЛБЕЦ($R$1))));1+ОСТАТ((СТОЛБЕЦ()-СТОЛБЕЦ($R$1));(СТОЛБЕЦ($X$1)-СТОЛБЕЦ($R$1))));"")
перемещение рядов лежащих друг под другом в горизонтальные по ключу
 
В ячейку R7 вставьте формулу массива и протяните до ячейки W9:
Код
=ЕСЛИОШИБКА(ИНДЕКС(C$1:C$21;СТРОКА($B$22)-НАИБОЛЬШИЙ(($B$7:$B$21=$K7)*(СТРОКА($B$22)-СТРОКА($B$7:$B$21));2));"")

В ячейку X7 вставьте формулу массива и протяните до ячейки AC9:
Код
=ЕСЛИОШИБКА(ИНДЕКС(C$1:C$21;СТРОКА($B$22)-НАИБОЛЬШИЙ(($B$7:$B$21=$K7)*(СТРОКА($B$22)-СТРОКА($B$7:$B$21));3));"")
Запрет на сохранение файла с таким же именем.
проблемы с копированием данных
 
Как вариант, вставлять формулы в блокнот, потом из блокнота копировать в целевую книгу:
https://translated.turbopages.org/proxy_u/en-ru.ru.263151eb-6912df7d-17409f44-74722d776562/https/spreadsheetweb.com/how-to-copy-a-formula-in-excel/
Или можем Вам макрос написать.
Сбор данных из файлов, Сбор данных из расчетных листов в таблицу
 
Скрытый текст
Изменено: МатросНаЗебре - 10.11.2025 15:17:46
Смена регистра первой буквы первого слова в ячейке
 
Переключение регистра первой буквы.
Код
=СИМВОЛ(КОДСИМВ(A1)-(КОДСИМВ("а")-КОДСИМВ("А"))*ЗНАК(КОДСИМВ(A1)-КОДСИМВ("а")+0,5)) & ПСТР(A1;2;ДЛСТР(A1))
делает так -> Делает так
Делает так -> делает так
Вытащить последнюю цифру из текста со скобками
 
Код
Option Explicit

Sub Вытащить_из_выделенных_ячеек()
    Dim cl As Range
    For Each cl In Intersect(Selection, ActiveSheet.UsedRange).Cells
        cl.Cells(1, 2).FormulaR1C1 = "=ВЫТАЩИТЬ(RC[-1])"
        If cl.Cells(1, 2).Value = "" Then cl.Cells(1, 2).Value = Empty
    Next
End Sub

Function ВЫТАЩИТЬ(ByVal строка As String) As Variant
    ВЫТАЩИТЬ = ""
    If InStr(строка, "[""") > 0 Then
        строка = Mid(строка, InStr(строка, "[""") + 2)
    Else
        ВЫТАЩИТЬ = ""
        Exit Function
    End If
    
    If InStr(строка, """]") > 1 Then
        строка = Mid(строка, 1, InStr(строка, """]") - 1)
    Else
        ВЫТАЩИТЬ = ""
        Exit Function
    End If
    
    Dim res As Variant
    res = ""
    строка = Replace(строка, " ", "")
    Dim arr As Variant
    arr = Split(строка, """,""")
    Dim ya As Long
    For ya = LBound(arr) To UBound(arr) - 1
        If (arr(ya) = "-") And (arr(ya + 1) <> "-") Then
            res = arr(ya + 1)
        ElseIf arr(ya + 1) <> "-" Then
            ВЫТАЩИТЬ = ""
            Exit Function
        End If
    Next
    ВЫТАЩИТЬ = res
End Function
Заполнение таблицы данными из формы, Первая строка не полностью заполняется
 
mtb.ListRows.Add приводит к срабатыванию события на изменение. Макросы, выполняемые по этому событию, сбрасывают значение ComboBox3. Запоминаем значение, потом возвращаем. Как-то так.
Заполнение таблицы данными из формы, Первая строка не полностью заполняется
 
Скрытый текст
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 291 След.
Наверх