Excel это не сложно
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
25.04.2024, 17:03:04

Войти
Хотите поблагодарить участника за дельный совет? Нажмите [Повысить]. Так вы заслуженно поднимите репутацию активному участнику.
33 243 Сообщений в 5 458 Тем от 6 763 Пользователей
Последний пользователь: tetrapack
*
Перейти на сайт Хитрости Надстройка MulTEx Обучающие тренинги Наша группа ВКонтакте
Правила форума Начало Помощь Поиск Календарь Войти Регистрация Выйти
  Просмотр сообщений
Страниц: [1] 2 3 ... 8
1  Прочие форумы / Курилка / Re:Инсульт - дело нешуточное : 05.07.2015, 21:07:21
Друзья, здравствуйте!
Извините, что долго молчу - пока еще тяжело писать.
Огромнейшее спасибо за помощь - всего около 70 т руб.
Благодаря вам - прошел нужные обследование и основной курс терапии.
Читать немного получается, писать учусь по-новой.
Еще раз -огромное спасибо за помощь, сейчас немного полегче.
Такой острой нужды сечас уже нет, и было бы не честно об этом не сказать.
2  Прочие форумы / Курилка / Re:Инсульт - дело нешуточное : 17.05.2015, 14:30:29
Друзья огромное спасибо за помощь!
Благодаря вам у меня появился шанс - сейчас прохожу курс интенсивной терапии, о результатх пока говорить рано.
Спасибо!
3  Прочие форумы / Курилка / Re:Инсульт - дело нешуточное : 12.05.2015, 18:38:33
Ребята, я сейчас в таком положении, что буду благодарен любой помощи.
Спасибо.
4  Основные форумы / Вопросы по Excel и VBA / Re:Копирование и добавления строк в зависимости от числа в ячейке. : 13.03.2015, 23:22:29
Код: (vb)
Sub Insert_Row_iceggg()
Dim Arr(), MiArr(), i&, ii&, k&, S&
With Worksheets(1)
    Arr = .UsedRange.Value
    S = WorksheetFunction.Sum(.Range(.Cells(2, 13), .Cells(.Rows.Count, 13).End(xlUp)))
    ReDim MiArr(1 To S, 1 To UBound(Arr, 2))
    k = 1
    For i = 2 To UBound(Arr)
        If Arr(i, 10) <> 0 Then
            For k = k To k + Arr(i, 13) - 1
                For ii = 1 To UBound(Arr, 2)
                    MiArr(k, ii) = Arr(i, ii)
                Next
                MiArr(k, 13) = 1
            Next
        Else
            For ii = 1 To UBound(Arr, 2)
                MiArr(k, ii) = Arr(i, ii)
            Next
            k = k + 1
        End If
    Next
    .Cells(2, 1).Resize(S, UBound(MiArr, 2)).Value = MiArr
End With
End Sub
5  Основные форумы / Вопросы по Excel и VBA / Re:Копирование и добавления строк в зависимости от числа в ячейке. : 13.03.2015, 18:01:43
iceggg, давайте подробнее, что у вас не получается, и с примером - что есть, что надо.
6  Основные форумы / Вопросы по Excel и VBA / Re:Копирование и добавления строк в зависимости от числа в ячейке. : 12.03.2015, 20:47:14
Вы проверили с исправлениями?
7  Основные форумы / Вопросы по Excel и VBA / Re:Копирование и добавления строк в зависимости от числа в ячейке. : 12.03.2015, 20:18:41
Понятно. Ошибка  в строке вычисления S Должно быть:
  
Код: (vb)
 S = WorksheetFunction.Sum(.Range(.Cells(2, 13), .Cells(.Rows.Count, 13).End(xlUp)))


зы. но если в файле есть скрытые строки (последние) или числа в тестовом формате - то нужен дрeгой алгоритм подсчета S
8  Основные форумы / Вопросы по Excel и VBA / Re:Копирование и добавления строк в зависимости от числа в ячейке. : 12.03.2015, 20:06:02
Пример можете показать, с пустыми строками, с ошибкой <Subscript out of range>.?
9  Основные форумы / Вопросы по Excel и VBA / Re:Копирование и добавления строк в зависимости от числа в ячейке. : 12.03.2015, 19:11:35
Цитировать
Во второй S=1 488 931 827
S - это количество строк; на листе всего 1 048 576 строк, куда вы столько поместите (полтора миллиарда)?
Цитировать
Еще заметил если в одном из столбцов есть пустые ячейки то выходит ошибка <Subscript out of range>.
Здесь непонятно. весь столбец пустой? или отдельные ячейки пустые? в принципе, не пустые. не нулевые ячейки в 13 столбце не мешают - просто эти строки не переносятся.
В других столбцах вообще роли нет.

10  Основные форумы / Вопросы по Excel и VBA / Re:Копирование и добавления строк в зависимости от числа в ячейке. : 10.03.2015, 19:34:08
Да, и еще... Мой код подразумевает, что на листе, кроме таблицы нет посторонних данных.
Если вы "экономите" листы, и кроме этой таблицы есть и другие - тогда код нужно немного переделать.
Конкретно, строку  
Код: (vb)
 Arr = .UsedRange.Value 
заменить на  
Код: (vb)
Arr = .Range("A1").CurrentRegion.Value 

здесь А1 - любая не пустая ячейка из нужной таблицы
11  Основные форумы / Вопросы по Excel и VBA / Re:Копирование и добавления строк в зависимости от числа в ячейке. : 10.03.2015, 19:11:06
И еще в другой таблице на 6 строке кода выдает ошибку <Out of memory>. Таблица такая же только там данных больше.
Плохо. Не хватает памяти для массивов.
Обрабатывать по частям - усложнит код, но обработка массивов на порядки быстрее работы по-ячеечно.
Сколько строк в первом массиве, и сколько строк должно получиться во втором, когда получается ошибка?
12  Основные форумы / Вопросы по Excel и VBA / Re:Копирование и добавления строк в зависимости от числа в ячейке. : 10.03.2015, 18:56:25
Код: (vb)
Sub Insert_Row_iceggg()
Dim Arr(), MiArr(), i&, ii&, k&, S&
With Worksheets(1)
'берем в массив все данные первого листа
    Arr = .UsedRange.Value '
'считаем сумму по 13 столбцу - для определения, сколько стоко будет всего
    S = WorksheetFunction.Sum(.Range(.Cells(2, 13), Cells(.Rows.Count, 2).End(xlUp)))
'Назанчаем размеры нового (конечного) массива
    ReDim MiArr(1 To S, 1 To UBound(Arr, 2))
    k = 1 ' начальное значение переменной. Определяет строку конечного массива
    For i = 2 To UBound(Arr) 'идем по строкам исходного массива, начиная с строки 2
        For k = k To k + Arr(i, 13) - 1
'в элемете Arr(i,13) - количество повтора строк, столько раз повторится строка i первого массива
            For ii = 1 To UBound(Arr, 2)
'переносим из строки i первого массива в строку k второго массива
                MiArr(k, ii) = Arr(i, ii)
            Next
            MiArr(k, 13) = 1 ' присваиваем значению в 13 стобце значение 1
        Next
    Next
'Выгружаем конечный массив на лист, начиная со второй строки
    .Cells(2, 1).Resize(S, UBound(MiArr, 2)).Value = MiArr
End With
End Sub
13  Основные форумы / Вопросы по Excel и VBA / Re:Копирование и добавления строк в зависимости от числа в ячейке. : 10.03.2015, 18:09:33
Хотелось бы посмотреть файл, в котором появляется эта ошибка.
зы. Она может появляться, только если в 13 столбце есть нули, или числа прописаны как текст (тогда Sum считает неверно).
14  Основные форумы / Вопросы по Excel и VBA / Re:Копирование и добавления строк в зависимости от числа в ячейке. : 10.03.2015, 08:42:45
Код: (vb)
Sub Insert_Row_iceggg()
Dim Arr(), MiArr(), i&, ii&, k&, S&
With Worksheets(1)
    Arr = .UsedRange.Value
    S = WorksheetFunction.Sum(.Range(.Cells(2, 13), Cells(.Rows.Count, 2).End(xlUp)))
    ReDim MiArr(1 To S, 1 To UBound(Arr, 2))
    k = 1
    For i = 2 To UBound(Arr)
        For k = k To k + Arr(i, 13) - 1
            For ii = 1 To UBound(Arr, 2)
                MiArr(k, ii) = Arr(i, ii)
            Next
            MiArr(k, 13) = 1
        Next
    Next
    .Cells(2, 1).Resize(S, UBound(MiArr, 2)).Value = MiArr
End With
End Sub
15  Основные форумы / Вопросы по Excel и VBA / Re:Посчитать среднее с определенным интервалом : 01.03.2015, 00:18:15
Усреднить по каждой строке, или по всем строкам сразу?
Покажите пример результата.
Страниц: [1] 2 3 ... 8
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