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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 30 След.
Строку данных именованного диапазона вывести в диапазон ячеек
 
Цитата
SidMorgan написал #1:
Можно ли подставить целиком этот именованный диапазон вместо ячейки B21 на первом листе?
Как протянуть формулу массива VBA
 
"Господствует еще смешенье языков:
Французского с нижегородским?" (А. С. Грибоедов)
Код
Sub Макрос1()
   Range("A7").FormulaLocal = "=--ЕНД(ПОИСКПОЗ(999;ПОИСК($E$2;C7:E7);1))"
   Range("A7").FormulaArray = Range("A7").Formula
   Range("A7:A20").FillDown
End Sub
Делимся..., разным
 
А мужики-то не знают ©
Изменение логина
 
Цитата
k61 написал #11:
Без меня дорогу на красный не переходите, в трансформаторы не лезьте, под стрелой не стойте.
Ещё вариант развлечения по выходу на пенсию:
https://www.youtube.com/watch?v=oIJ5m1_6E24
О музыке.
 
С Новым Годом ! Дискотека+
Разрывы на графике вместо нулей (именным диапазоном), Вопрос без файла-примера
 
Цитата
Daost написал:
пока эту функцию не включили в сборку Excel
Если макросы разрешены, можно сделать "трюк" с ещё одним именованным диапазоном (на скрытом листе),
с которого диаграмма и будет считывать данные ряда.
Код макроса-события смотреть в модуле Лист1.
среднее значение волновой картины
 
MEP, а может здесь подойдёт "отбраковка грубых отклонений от среднего" по правилу 3-х сигм:
http://100task.ru/sample/75.aspx ?
JavaScript vs Python, что учить, о рыцаре VBA на перепутье
 
:)
Тригонометрический вариант "извращения":
Код
Sub Test1()
    Dim Arr1(), Arr2(), Arr3() As String, W1 As Double, Y As Double
    Dim N As Long, J As Long, K As Long
    N = 13
    Arr1 = Array(85.9230769230769, 14.635620421754, 35.6612529427871, 1.49050835493449, 17.4619572482512, 7.33270735124174, 10.6733727881944)
    Arr2 = Array(0, -2.65154889180633, -1.8979364051541, 0.746873225667152, -0.474113138132726, 2.95545420518, 1.4745418419859)
    W1 = WorksheetFunction.Pi * 2 / N
    ReDim Arr3(N - 1)
    For J = 0 To N - 1
        Y = Arr1(0)
        For K = 1 To N \ 2
            Y = Y + Arr1(K) * Cos(K * W1 * J + Arr2(K))
        Next
        Arr3(J) = Chr(Y)
    Next
    Debug.Print Join(Arr3, "")
End Sub
Изменить начало отсчета массива с 0 на 1
 
Ответ на вопрос сообщения #1 темы (изменить начало отсчета массива с 0 на 1).
Как то давно Михаил MCH подсказал, что, если будущий массив не объявлять как массив,
а как переменную Variant (=безобъявления), то ReDim Preserve - сработает:
Код
Sub Test1()
''''    Dim arrP() As String
    Dim arrP
    Dim P
    P = "P20 P44 P64 P83"
    arrP = Split(P)
    ReDim Preserve arrP(1 To UBound(arrP) + 1)
End Sub
Связанный выпадающий список на основе сводной таблицы
 
Цитата
InodKo написал #6:
прошу объяснить способ реализованный пользователем C.M.
В файле живут именованные формулы (см. в Диспетчере),
которые создают ссылки на диапазоны выпадающих_списков из диапазонов сводных_таблиц.
Может в файле (.2) понятнее:
Создание большого именованного массива констант, Массив констант на 256 и более элементов
 
Цитата
БМВ написал:
предположу, что данный массив был впихнут через VBA. Я прав?
Да, Вы правы, вот этот страшный макрос :
Код
Sub TestФИО()
    Names.Add "ФИО.123", Selection.Value
End Sub
Цитата
Ігор Гончаренко написал:
а то разгадают кто не попадя и давай
Ok. Удалил свою часть "шелухи".
Создание большого именованного массива констант, Массив констант на 256 и более элементов
 
Del..
Изменено: С.М. - 4 Сен 2018 19:53:46
Создание большого именованного массива констант, Массив констант на 256 и более элементов
 
Del.
Изменено: С.М. - 4 Сен 2018 19:53:16
Создание большого именованного массива констант, Массив констант на 256 и более элементов
 
Del
Изменено: С.М. - 4 Сен 2018 19:51:27
Вызов именованной формулы по условию, Нужен пользовательский аналог ДВССЫЛ для работы с именованными формулами.
 
Не, если функцию переписать так
Код
Function UseThisName(sName As String)
    Application.Volatile
    UseThisName = Evaluate(Names(sName).Name)
End Function
то, в принципе, сработает:
Сравнение списков по двум столбцам с выводом результата отличия, VBA
 
Цитата
Dyroff написал:
БМВ  написал: начните с Ожегова
А я вот гугл-переводчиком пользуюсь: Товар - Goods, Количество - Quantity
Код
Sub Find_Matches_123()
    Dim Rng As Range, G As Variant, Q As Variant, N As Long, I As Long, J As Long
    Application.ScreenUpdating = False
    Set Rng = Sheets("Как надо").[A1].CurrentRegion
    N = Rng.Rows.Count
    For J = 2 To N
        G = Rng.Cells(J, 3)
        Q = Rng.Cells(J, 4)
        For I = 2 To N
            If Rng.Cells(I, 1) = G Then
                If Rng.Cells(I, 2) = Q Then
                    Rng.Cells(J, 5).Value = "Совпадает"
                Else
                    Rng.Cells(J, 5).Value = "Разное количество"
                End If
                Exit For
            End If
        Next
        If I > N Then Rng.Cells(J, 5) = "Нет Кода"
    Next
    Application.ScreenUpdating = True
End Sub
[ Закрыто] Календарь алкоголика
 
Off Topic
Randomize + Rnd генерирует одинаковые числовые последовательности
 
Цитата
sokol92 написал #28:
Так что на 20 столбцах в #27 они не успевают повториться.
На Лист2 (Randomize - внутри цикла) - повторяются,
а на Лист4 (Randomize - перед циклом) - нет
---------------
На Лист1 - таблица 100x20 с повторами.
Изменено: С.М. - 19 Авг 2018 21:58:26 (Заменил файл)
Randomize + Rnd генерирует одинаковые числовые последовательности
 
Виктор, ну так через несколько итераций в цикле Now таки изменяется, но не намного. Может поэтому и возникает повторяемость (?).
Изменено: С.М. - 20 Авг 2018 00:44:06
Randomize + Rnd генерирует одинаковые числовые последовательности
 
Цитата
vikttur написал #19:
после одного запуска Randomize генерируется вся последовательность.
Randomize НЕ генерирует последовательность, а только устанавливает её начальное значение,
каждое следующее значение Rnd - функция предыдущего значения.
Если в цикле ставить Randomize перед каждым вызовом Rnd, то Now просто не успевает измениться
и Randomize создаёт начальное значение с тем же значением Now.
Изменено: С.М. - 20 Авг 2018 00:43:11 (С американским языком плохо :-()
Сортировка статичного списка на другом листе
 
Ещё можно Сводную приспособить:
Группировка одинаковых значений в таблице
 
Цитата
sintex написал #9:
подсказали другой способ .... В первой строке подсвечиваются однотипные столбцы
Вот теперь понял: редизайн здесь ни с какого боку.
Повесил макрос на событие изменения в ячейках с "да"/пусто("нет"?) :
Изменено: С.М. - 10 Авг 2018 15:24:32
Группировка одинаковых значений в таблице
 
Эх, бабушка Ванга опять неправильно подсказала - редизайн не нужен.
sintex, сделал по вашему шаблону. Только удалил последний столбец исходной - он целиком пустой.
А в столбце 'объект19' у Вас три ячейки не пустые, а с пробелами.
Изменить размер заполненного массива по количеству элементов. Правила Redim Preserve для массивов разных размерностей
 
Цитата
Nordheim написал #20:
В связи с тем что нужно сравнивать именно значения
Ладно. Мир-труд-жвачка ! (с)
Я понял задачу Jack Famous, также как SAS888 в #9. У нас абсолютно одинаковый результат, но разные инструменты.
Изменить размер заполненного массива по количеству элементов. Правила Redim Preserve для массивов разных размерностей
 
А причём здесь исключение дубликатов ?
Цитата
Jack Famous написал #1:
Процесс:1. ищу совпадения (строки "r", может быть несколько) по заданному столбцу2. Если совпадение есть, то забираю значения ячеек нескольких "N" столбцов по этой строке3. Продолжаю поиск
Изменено: С.М. - 9 Авг 2018 15:14:33
Изменить размер заполненного массива по количеству элементов. Правила Redim Preserve для массивов разных размерностей
 
Можно, в этом случае, пользовать только массивы:
Код
Sub uuu()
    Dim i As Long, j As Long, a(), b(), z&(), q&, s&
    a = [A1:C20].Value 'Пусть это исходный массив
    ReDim z(1 To UBound(a, 1)) ' массив номеров строк (размер с запасом) '
    For i = 1 To UBound(a, 1)
        If a(i, 1) <> "" Then q = q + 1: z(q) = i
        ''''If a(i, 1) = Что_ищем Then q = q + 1: z(q) = i
    Next
    ReDim b(1 To q, 1 To UBound(a, 2))
    For i = 1 To q
        s = s + 1
        For j = 1 To UBound(b, 2): b(s, j) = a(z(i), j): Next
    Next
    [F1].Resize(q, UBound(b, 2)).Value = b
End Sub
Группировка одинаковых значений в таблице
 
А, забыл
Цитата
sintex написал:
необходимо выявить несколько групп однотипных "объектов
Вот:
Группировка одинаковых значений в таблице
 
Цитата
sintex написал:
если только макросом то как?
Вариант по мотивам Редизайна таблиц :
Разность двух массивов с помощью коллекции
 
Цитата
Hostyle написал #1:
Пробовал решить с помощью массивов, но в этом случае не выходит сравнить элементы массивов именно на неравенство
Скрытый текст
Изменено: С.М. - 6 Авг 2018 01:37:25
Удаление строк по условию, Из
 
Код
Sub УдалитьНенужныеСтроки()
    Const Статья$ = "214050000"
    Const ПБФ$ = "91301"
    Const ZKF1$ = "3", ZKF2$ = "10"
    Dim Rng As Range, T(), K As Long
    Application.ScreenUpdating = False
    Set Rng = Range("A1").CurrentRegion
    T = Rng.Value
    For K = UBound(T, 1) To 2 Step -1
        If T(K, 1) = Статья Then
            If T(K, 4) = ПБФ And T(K, 3) = ZKF1 Then Rng.Cells(K, 3) = ZKF2 Else Rng.Rows(K).Delete xlUp
        End If
    Next
    Application.ScreenUpdating = True
End Sub
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 30 След.
Наверх