Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Работа с объектами  (Прочитано 6117 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Wastyp
Новенький

ua
Offline Offline

« : 21-10-2010 18:40 » new

У меня не получается запустить программу. Пишет ошибку. Помогите,пожалуйста,разобраться в чем дело?

В среде VBA создать проект. В проекте использовать,объекты,свойства,методы.
Задание:
В выбранной матрице столбец, содержащий максимальный элемент матрицы, поменять местами со столбцом, содержащим минимальный элемент матрицы.

Код программы:

Код: (Visual Basic)
Dim m_min As Single
Dim m_max As Single


Public Property Get min() As Single
     min = m_min
End Property


Public Property Let min(ByVal vvod As Single)
            m_min = vvod
End Property


Public Property Get max() As Single
     max = m_max
End Property


Public Property Let max(ByVal vvod As Single)
            m_max = vvod
End Property
 
Option Explicit
Option Base 1
Dim a(4, 4) As Byte
Dim i As Byte
Dim j As Byte



Sub lab2()
Dim bufer As Single
Dim matrica1 As matrica
Set matrica1 = New matrica
Randomize
'заполнение массива
For i = 1 To 4
 For j = 1 To 4
 a(i, j) = Int(Rnd * 100)
 Next j
Next i
'вывод массива
Range("A1").Select
For i = 1 To 4
 For j = 1 To 4
 ActiveCell.Offset(i - 1, j - 1).Value = a(i, j)
 Next j
 Next i

matrica1.max = maximst(0)
Range("F2").Select
ActiveCell.Value = matrica1.max
Range("F1").Select
ActiveCell.Formula = "max stolbec"

matrica1.min = minimst(100)
Range("G2").Select
ActiveCell.Value = matrica1.min
Range("G1").Select
ActiveCell.Formula = "min stolbec"
Range("A8:D12").Select
Selection.Clear
 Range("A8").Select
If matrica1.min <> matrica1.max Then
  ActiveCell.Formula = "Результат - матрица c поменяными столбцами (max и min элементы)"
    For i = 1 To 4
      bufer = a(i, matrica1.max)
      a(i, matrica1.max) = a(i, matrica1.min)
      a(i, matrica1.min) = bufer
    Next i
    Range("A8").Select
    For i = 1 To 4
      For j = 1 To 4
       ActiveCell.Offset(i, j - 1).Value = a(i, j)
      Next j
    Next i
Else
  ActiveCell.Formula = "Строки с минимумом и максимумом совпали"
End If

End Sub
Function maximst(max As Single)
For i = 1 To 4
 For j = 1 To 4
 If a(i, j) > max Then
 max = a(i, j)
 maximst = j
 End If
 Next j
 Next i
End Function
Function minimst(min As Single)
For i = 1 To 4
 For j = 1 To 4
 If a(i, j) < min Then
 min = a(i, j)
 minimst = j
 End If
 Next j
Next i
End Function
« Последнее редактирование: 21-10-2010 19:27 от RXL » Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 21-10-2010 19:28 » 

И какая ошибка? Рассказывай детально - за тебя это никто не сделает.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Wastyp
Новенький

ua
Offline Offline

« Ответ #2 : 21-10-2010 19:39 » 

compile error:
user-defined type not defined
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 21-10-2010 20:30 » 

Wastyp, запускай пошагово и ищи, где выскочит ошибка - там и проблема.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines