![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 29.11.2008
Сообщений: 3
|
![]()
Мне надо на VBA построить квадратную матрицу типа этого
1 2 3 4 4 1 2 3 3 4 1 2 2 3 4 1 Пожалуйста помогите!!! Последний раз редактировалось Марат707; 29.11.2008 в 16:43. |
![]() |
![]() |
#2 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
![]()
Помогите нам и вы.
То, типа какой должна быть матрица, мало проясняет смысл вашего задания. Должна ли она быть 4 на 4 или вообще N*N? Может, просто набрать её, как вы это сделали, в 4 строки?! (А тогда просто сделайте это, включив предварительно запись: в главном меню (верхняя часть документа Word) Сервис>Макрос>Начать запись><теперь печатайте свою матрицу, поэлементно (а не путём вставки)>Остановить запись. Жмёте далее альт-F11 — вот и ваш макрос!
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
|
![]() |
![]() |
#3 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
![]()
Option Base 1
Sub MatrixCasual() 'печать кв. матрицы случайных чисел от (-10 до 10) Dim dimension As Byte, massiv() As Integer Dim i As Byte, answer As Long dimension = Int(1 + 10 * Rnd) answer = MsgBox("Печатать матрицу " & _ dimension & " на " & dimension & "?", vbYesNo) If answer = vbNo Then Exit Sub ReDim massiv(dimension ^ 2) 'размерность матрицы With Selection '(в месте нахождения курсора) .TypeParagraph 'печать абзаца For i = 1 To UBound(massiv) massiv(i) = Int(-10 + 20 * Rnd) .TypeText vbTab & massiv(i) 'разделитель — tab* '* вместо vbTab можно «нарисовать» пробел: " " If i Mod dimension = 0 Then .TypeParagraph Next .TypeParagraph 'печать абзаца после матрицы End With
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
Последний раз редактировалось Sasha_Smirnov; 29.11.2008 в 19:53. |
![]() |
![]() |
#4 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
![]()
End Sub ''
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
|
![]() |
![]() |
#5 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
![]()
Option Base 1
Sub MatrixCasualinTable() 'печать таблицы (случайных) чисел от (1 до 100) Const separat As String * 1 = vbTab 'разделитель стобцов (символ) Dim dimension As Byte, massiv() As Integer, i As Integer dimension = Int(1 + 20 * Rnd) If MsgBox("Печать квадратной (" & dimension & "*" & dimension & ") матрицы.", vbYesNo) _ = vbNo Then Exit Sub ReDim massiv(dimension ^ 2) 'число ячеек таблицы For i = 1 To UBound(massiv) massiv(i) = Int(1 + 100 * Rnd) Selection.TypeText massiv(i) & IIf(i Mod dimension = 0, vbLf, vbTab) Next i SendKeys "^+{home}", Tru 'выделяет текст до начала Selection.ConvertToTable _ Separator:=vbTab 'преобразует "матрицу" в таблицу Selection.HomeKey 'курсор - к началу выделения SendKeys "{enter}", True 'ввод (символа) абзаца - ENTER End Sub (Перед End Sub четыре строчки можно выключить, и таблицы не будет.)
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
|
![]() |
![]() |
#6 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
![]()
Option Base 1
Sub MatrixCasualinTable() 'печать таблицы (случайных) чисел от (1 до 100) Const separat As String * 1 = vbTab 'разделитель стобцов (символ) Dim dimension As Byte, massiv() As Integer, i As Integer dimension = Int(1 + 20 * Rnd) If MsgBox("Печать квадратной (" & dimension & "*" & dimension & _ ") матрицы.", vbYesNo) = vbNo Then Exit Sub ReDim massiv(dimension ^ 2) 'число ячеек таблицы For i = 1 To UBound(massiv) massiv(i) = Int(1 + 100 * Rnd) Selection.TypeText massiv(i) & IIf(i Mod dimension = 0, vbLf, vbTab) Next i 'SendKeys "^+{home}", True 'выделяет текст до начала 'Selection.ConvertToTable 'Separator:=vbTab 'преобразует "матрицу" в таблицу 'Selection.HomeKey 'курсор - к началу выделения 'SendKeys "{enter}", True 'ввод (символа) абзаца - ENTER End Sub
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
|
![]() |
![]() |
#7 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
![]()
Ну а вот так, надеюсь, вообще всё ясно, да?
Option Base 1 Sub MatrixCasual() 'печать кв. матрицы случайных целых чисел (из промежутка 0 до 9) Const separat As String = " " 'разделитель стобцов (здесь: 2 пробела) Dim dimension As Byte, massiv() As Integer, k As Integer, answer As Long dimension = Int(1 + 10 * Rnd) 'КОЛИЧЕСТВО строк квадратной матрицы answer = MsgBox("Печатать матрицу " & _ dimension & " на " & dimension & "?", vbYesNo) If answer = vbNo Then Exit Sub 'прерывание, если ответили «Нет» ReDim massiv(dimension ^ 2) 'количество всех элементов кв. матрицы With Selection '(печать в месте нахождения курсора) .TypeParagraph 'сначала печатаем абзац For k = 1 To UBound(massiv) massiv(k) = Int(0 + 10 * Rnd) 'случайное целое из диапазона [0;9] .TypeText separat & massiv(k) 'разделитель столбцов и k-й элемент If k Mod dimension = 0 Then .TypeParagraph Next End With End Sub
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
|
![]() |
![]() |
#8 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
![]()
(только при импорте в "тему" два пробела заменились на один)
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
|
![]() |
![]() |
#9 | |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
![]() Цитата:
И вот он! Это и есть программа на VBA. ___________________________________ * если, разумеется, ваш Word не урезан по функциям до печатной машинки
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
|
|
![]() |
![]() |
#10 |
Регистрация: 29.11.2008
Сообщений: 3
|
![]()
Спасибо большое!!!
|
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сложить матрицу... | Zibiv | Помощь студентам | 7 | 19.05.2009 15:51 |
Задача на матрицу. | Fest | Помощь студентам | 2 | 16.12.2007 05:54 |
Задачка на матрицу. | Саня895 | Помощь студентам | 1 | 11.12.2007 08:45 |
Как посчитать матрицу? | RECREATOR | Помощь студентам | 8 | 30.11.2007 07:10 |