Форум программистов, компьютерный форум, киберфорум
MS Office Excel
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.78/23: Рейтинг темы: голосов - 23, средняя оценка - 4.78
5 / 5 / 2
Регистрация: 04.06.2009
Сообщений: 147
1

Доделать макрос

05.06.2009, 15:26. Показов 4494. Ответов 21
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!
Я делала програмку в екселе. В работе 4 флажка: разность, сумма, произведение, деление. Мне нужно, что бы когда я активирую 3 из них: допустим, разность, сумма, произведение, то в примерах(задание прилагаю), нажав на кнопку создать примеры, появляюся примеры на умножение, разность и сумму. Итак же для 4 -х флажков, у меня сделано только для двух разных, а в сумме я не знаю как надо сделать...
Если можете, помогите, пожайлуста.
Вложения
Тип файла: rar Karta11 (version 1).rar (25.5 Кб, 122 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.06.2009, 15:26
Ответы с готовыми решениями:

Как доделать макрос?
Есть макрос Private Sub CommandButton1_Click() Dim bookName As String, dict As Object,...

Удаление лишних строк - доделать макрос
Приветствую знатоков и прошу помочь доделать код. Есть текстовые данные, разбитые постранично. На...

Доделать макрос поиска слов в фразах
Здравствуйте помогите пожалуйста доделать макрос. У меня есть макрос, который делает то что мне...

Доделать макрос разбора htm файла
Добрый день уважаемые.Пишу к Вам ,стоя под дулом пистолета. Напрягли меня разобраться в макросе и...

21
10065 / 2622 / 84
Регистрация: 17.02.2009
Сообщений: 10,364
05.06.2009, 15:53 2
вот так строчку переделайте
Visual Basic
1
2
If sh.CheckBox_РАЗНОСТЬ And sh.CheckBox_ДЕЛЕНИЕ And sh.CheckBox_СУММА And sh.CheckBox_ПРОИЗВЕДЕНИЕ _
Then Знак = IIf(Rnd(33) * 2 < 1, IIf(Rnd(33) * 2 < 1, "-", "/"), IIf(Rnd(33) * 2 < 1, "+", "*"))
0
5 / 5 / 2
Регистрация: 04.06.2009
Сообщений: 147
05.06.2009, 17:32  [ТС] 3
Спасибо, всё работает!
0
5 / 5 / 2
Регистрация: 04.06.2009
Сообщений: 147
15.06.2009, 18:26  [ТС] 4
Здравствуйте! Скажите пожалуйста, а как мне поставить условие в операции деление, чтоб ответ был только целочисленный, например:
если есть пример 13 разделить на 4 я в ответе напишу 3, то это будет считаться правильным и программа не выдаст ошибку?
0
10065 / 2622 / 84
Регистрация: 17.02.2009
Сообщений: 10,364
15.06.2009, 18:49 5
13 \ 4 = 3
0
5 / 5 / 2
Регистрация: 04.06.2009
Сообщений: 147
15.06.2009, 19:10  [ТС] 6
Ну да, я вот думаю, что здесь надо использовать Console.WriteLine(Int()), но я не знаю куда её вставить...
0
10065 / 2622 / 84
Регистрация: 17.02.2009
Сообщений: 10,364
15.06.2009, 19:12 7
Karta, ненене. там просто слэш обратный используется: \ - целочисленное деление
0
5 / 5 / 2
Регистрация: 04.06.2009
Сообщений: 147
15.06.2009, 19:19  [ТС] 8
Но у меня не получается... куда он там вставляется?
0
10065 / 2622 / 84
Регистрация: 17.02.2009
Сообщений: 10,364
15.06.2009, 19:25 9
Visual Basic
1
2
If sh.CheckBox_РАЗНОСТЬ And sh.CheckBox_ДЕЛЕНИЕ And sh.CheckBox_СУММА And sh.CheckBox_ПРОИЗВЕДЕНИЕ _
Then Знак = IIf(Rnd(33) * 2 < 1, IIf(Rnd(33) * 2 < 1, "-", "/"), IIf(Rnd(33) * 2 < 1, "+", IIf(Rnd(33) * 2 < 1, "\", "*")))
типа так как-то
0
5 / 5 / 2
Регистрация: 04.06.2009
Сообщений: 147
15.06.2009, 19:26  [ТС] 10
У меня просто в условии деления нет "/"
Вложения
Тип файла: rar Karta11 (version 1).rar (25.7 Кб, 50 просмотров)
0
10065 / 2622 / 84
Регистрация: 17.02.2009
Сообщений: 10,364
15.06.2009, 19:27 11
Karta, мона файл па другому назвать, у мну прокси сервак с кешем, он старое запомнил!
0
5 / 5 / 2
Регистрация: 04.06.2009
Сообщений: 147
15.06.2009, 19:34  [ТС] 12
Не работает...
0
5 / 5 / 2
Регистрация: 04.06.2009
Сообщений: 147
15.06.2009, 19:53  [ТС] 13
Воотт...
Вложения
Тип файла: rar Mona.rar (25.6 Кб, 37 просмотров)
0
БурундукЪ
15.06.2009, 20:15
  #14

Не по теме:

Karta, я понял, что хочете ))) щас буду думать

0
5 / 5 / 2
Регистрация: 04.06.2009
Сообщений: 147
15.06.2009, 21:13  [ТС] 15
А ещё можно спросить, что значат эти 2 строчки:
SumsCount = Val([h2]): If SumsCount < 4 Then SumsCount = 4

SumText = Trim(Target.Offset(, -4)) & Trim(Target.Offset(, -3)) & Trim(Target.Offset(, -2))
?
0
10065 / 2622 / 84
Регистрация: 17.02.2009
Сообщений: 10,364
15.06.2009, 23:14 16
Краткие описания основных функций и команд VB - здесь расписаны функции Визуал Басика
но если кратко, то
Val - преобразование строки в число, если число меньше 4, то приравнять к 4.
Trim - удаление внешних пробелов в строке (справа и слева)
вот что такое Target.Offset для меня загадка, но точно могу сказать, что это ссылки на ячейки
1
5 / 5 / 2
Регистрация: 04.06.2009
Сообщений: 147
16.06.2009, 00:41  [ТС] 17
эт я как раз понимаю, я не понимаю, почему 4? Что она здесь обозначает? И что значит (, -4)?
0
3896 / 899 / 122
Регистрация: 16.04.2009
Сообщений: 1,825
16.06.2009, 10:54 18
Цитата Сообщение от Karta Посмотреть сообщение
Не работает...
А так:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Not Intersect(Target, sh.[e:e]) Is Nothing And Target.Cells.Count = 1 Then
        текстпримера = Trim(Target.Offset(, -4)) & Trim(Target.Offset(, -3)) & Trim(Target.Offset(, -2))
        textPrimera = Int(Application.Evaluate(текстпримера))
        Debug.Print текстпримера & "=" & textPrimera
        Target.Interior.ColorIndex = 35
 
        If textPrimera <> Val(Target) Then
            Debug.Print ttt, Trim(Target)
            ДобавкаЗаОшибку = Val([ДобавкаЗаОшибку])
            For i = 1 To ДобавкаЗаОшибку: СоздатьПример: Next
            Target.Interior.ColorIndex = 38: Target.Next = 1
        End If
    End If
End Sub
1
5 / 5 / 2
Регистрация: 04.06.2009
Сообщений: 147
16.06.2009, 12:27  [ТС] 19
СПАСИБО!!!

Добавлено через 1 час 11 минут 13 секунд
Скажите, а что значит эта строка:
Debug.Print ttt, Trim(Target)
0
3896 / 899 / 122
Регистрация: 16.04.2009
Сообщений: 1,825
16.06.2009, 12:33 20
Все строки с Debug.... можете смело удалять. Они не играют никакой роли в программе. Это значит что во время выполнения кода в окно отладки (Immediate - Ctrl+G в редакторе кода) будут выводится промежуточные данные.
А "ttt" это такая хитрая переменная которая сначала у меня была, а потом я ее удалил за ненадобностью, а дух ее остался в этой строке
0
16.06.2009, 12:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.06.2009, 12:33
Помогаю со студенческими работами здесь

Помогите доделать макрос (рабочий диапазон, функция и т.п.)
Народ помогите пожалуйста Есть такой макрос: Sub Macros() '-------------begin---------- Dim...

Макрос: Написать макрос по сравнению двух таблиц для нахождения несоответствий...
знатоки, прошу помощи в еще одном деле: есть два листа, --в одном список: яблоко, груша, слива, ...

Макрос вставки файлов в листы-Необходимо изменить ниже приведённый макрос
Необходимо изменить ниже приведённый макрос, взятый с форума. Необходима помощь. Буду признателен....

Если макрос на VBA переписать на С++, то макрос станет работать быстрее?
Всем привет!) У меня есть макрос написанный в Екселе на VBA, если его переписать на С++ , то...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru