Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Вычислить "N" по количеству элементов массива "С" - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вычислить "N" по количеству элементов массива "С" (Макросы/Sub)
Вычислить "N" по количеству элементов массива "С"
Ivan_70 Дата: Суббота, 11.06.2022, 07:33 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 20% ±

Всем здраствуйте гуру VBA!))))))
Помогите пожалуйста ребят разобраться, как изменить макрос, который требует от меня препод........

Задание:
Вычислите "N" по количеству элементов массива "С"!
Создайте цикл и проверяйте ячейки массива, не пустая ли следующая.


Проверяет эту работу просто: задаёт еще несколько элементов массива "С" и смотрит, увеличилась ли соответственно матрица G;
К сообщению приложен файл: InfoSect5.xlsm(26.0 Kb)
 
Ответить
СообщениеВсем здраствуйте гуру VBA!))))))
Помогите пожалуйста ребят разобраться, как изменить макрос, который требует от меня препод........

Задание:
Вычислите "N" по количеству элементов массива "С"!
Создайте цикл и проверяйте ячейки массива, не пустая ли следующая.


Проверяет эту работу просто: задаёт еще несколько элементов массива "С" и смотрит, увеличилась ли соответственно матрица G;

Автор - Ivan_70
Дата добавления - 11.06.2022 в 07:33
Pelena Дата: Суббота, 11.06.2022, 08:03 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 18437
Репутация: 4156 ±
Замечаний: ±

Excel 2016 & Mac Excel
Здравствуйте.
Как-то так
К сообщению приложен файл: 8537720.xlsm(25.6 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЗдравствуйте.
Как-то так

Автор - Pelena
Дата добавления - 11.06.2022 в 08:03
Ivan_70 Дата: Суббота, 11.06.2022, 08:11 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 20% ±

Pelena, а я не могу редактировать((( Не могу зайти посмотреть как написан макрос.
 
Ответить
СообщениеPelena, а я не могу редактировать((( Не могу зайти посмотреть как написан макрос.

Автор - Ivan_70
Дата добавления - 11.06.2022 в 08:11
Pelena Дата: Суббота, 11.06.2022, 08:17 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 18437
Репутация: 4156 ±
Замечаний: ±

Excel 2016 & Mac Excel
Почему не можете? Что мешает?
Правой кнопкой мыши по ярлыку листа -- Посмотреть код. Я же Ваш макрос корректировала


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеПочему не можете? Что мешает?
Правой кнопкой мыши по ярлыку листа -- Посмотреть код. Я же Ваш макрос корректировала

Автор - Pelena
Дата добавления - 11.06.2022 в 08:17
Ivan_70 Дата: Суббота, 11.06.2022, 08:20 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 20% ±

Pelena, а не знаю, что то не дает(((
 
Ответить
СообщениеPelena, а не знаю, что то не дает(((

Автор - Ivan_70
Дата добавления - 11.06.2022 в 08:20
Pelena Дата: Суббота, 11.06.2022, 08:24 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 18437
Репутация: 4156 ±
Замечаний: ±

Excel 2016 & Mac Excel
Макрос для кнопки Старт
[vba]
Код
Private Sub CommandButton1_Click()

'Определяем массив С для исходных данных и массива g
'для резулютирующей квадратной матрицы
    Dim c(), g(), k As Long, i As Long, j As Long

    Cells(7, 1).CurrentRegion.Offset(1).ClearContents
    
    'Вводим в массив С значений из ячеек A2:D2
    k = 1
    Do While Cells(2, k) <> ""
        ReDim Preserve c(1 To k)    'увеличивает размерность массива с пока элемент не пустой
        c(k) = Cells(2, k)
        k = k + 1
    Loop
    
    'Выделяем память для массива g
    ReDim g(1 To k - 1, 1 To k - 1)

    'Проводим расчет элементов матрицы по заданной формуле
    'организуя двойной цикл (по строкам и столбцам)
    For i = 1 To k - 1
        For j = 1 To k - 1
            If i <= j Then
                g(i, j) = Sin(c(i)) ^ 2
            Else
                g(i, j) = c(i - j) + Cos(c(i))
            End If
            'Ввод элементов полученной матрицы g в ячейки A7:D10 листа Excel
            Cells(i + 6, j) = g(i, j)
        Next j
    Next i
End Sub
[/vba]


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеМакрос для кнопки Старт
[vba]
Код
Private Sub CommandButton1_Click()

'Определяем массив С для исходных данных и массива g
'для резулютирующей квадратной матрицы
    Dim c(), g(), k As Long, i As Long, j As Long

    Cells(7, 1).CurrentRegion.Offset(1).ClearContents
    
    'Вводим в массив С значений из ячеек A2:D2
    k = 1
    Do While Cells(2, k) <> ""
        ReDim Preserve c(1 To k)    'увеличивает размерность массива с пока элемент не пустой
        c(k) = Cells(2, k)
        k = k + 1
    Loop
    
    'Выделяем память для массива g
    ReDim g(1 To k - 1, 1 To k - 1)

    'Проводим расчет элементов матрицы по заданной формуле
    'организуя двойной цикл (по строкам и столбцам)
    For i = 1 To k - 1
        For j = 1 To k - 1
            If i <= j Then
                g(i, j) = Sin(c(i)) ^ 2
            Else
                g(i, j) = c(i - j) + Cos(c(i))
            End If
            'Ввод элементов полученной матрицы g в ячейки A7:D10 листа Excel
            Cells(i + 6, j) = g(i, j)
        Next j
    Next i
End Sub
[/vba]

Автор - Pelena
Дата добавления - 11.06.2022 в 08:24
Ivan_70 Дата: Суббота, 11.06.2022, 08:27 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 20% ±

Pelena, спасииииииибо большущеееееееее)))))))) Вы просто чудо)))))
 
Ответить
СообщениеPelena, спасииииииибо большущеееееееее)))))))) Вы просто чудо)))))

Автор - Ivan_70
Дата добавления - 11.06.2022 в 08:27
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вычислить "N" по количеству элементов массива "С" (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2022 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!