Помогите пожалуйста! Как в бейсике 6.0 поменять строки матрицы так чтобы отсортировать элементы указанного столбца матрицы по убыванию??? Модуль прописал весь остальной код прописал а код этой команды не могу.
» Задачи на Visual Basic (VB).
Доброго времени суток. Подскажите пожалуйста с задачкой.
Есть функция:
Код:
Public Function CountCc() As Integer
Dim objAllUser, objCurUser, objUser As Object
objCurUser = GetObject(CurentOUPathStr)
If Mid(CurentOUPathStr, 11, 3) = "EWM" Then
objAllUser = GetObject("LDAP://ou=Users," & CurentPathDim(6) & "," & CurentPathDim(5) & ",ou=bla,dc=bla,dc=bla,dc=bla")
Else
objAllUser = GetObject("LDAP://ou=EWM," & Mid(CurentOUPathStr, 8))
End If
For Each objUser In objCurUser
If Not objUser.sAMAccountName Is Nothing Then
CountCc += 1
End If
Next
Return CountCc
End Function
Есть функция:
Код:
Public Function CountCc() As Integer
Dim objAllUser, objCurUser, objUser As Object
objCurUser = GetObject(CurentOUPathStr)
If Mid(CurentOUPathStr, 11, 3) = "EWM" Then
objAllUser = GetObject("LDAP://ou=Users," & CurentPathDim(6) & "," & CurentPathDim(5) & ",ou=bla,dc=bla,dc=bla,dc=bla")
Else
objAllUser = GetObject("LDAP://ou=EWM," & Mid(CurentOUPathStr, 8))
End If
For Each objUser In objCurUser
If Not objUser.sAMAccountName Is Nothing Then
CountCc += 1
End If
Next
Return CountCc
End Function
Еще одна задачка, которую не могу понять как решить. Есть CheckListBox, в котором два пункта с флажками. При выборе двух пунктов, как определить, какой пункт был выбран последним?
Код:
Dim x As Integer
Dim gchk, gchk1 As String
Dim itemChecked As Object
Const quote As String = """"
For Each x In CheckedListBox1.CheckedIndices
MessageBox.Show("Index#: " + x.ToString() + ", is checked. Checked state is:" + _
CheckedListBox1.GetItemCheckState(x).ToString() + ".")
gchk = CheckedListBox1.GetItemCheckState(0).ToString()
gchk1 = CheckedListBox1.GetItemCheckState(1).ToString()
Next
For Each itemChecked In CheckedListBox1.CheckedItems
' Use the IndexOf method to get the index of an item.
MessageBox.Show("Item with title: " + quote + itemChecked.ToString() + quote + _
", is checked. Checked state is: " + _
CheckedListBox1.GetItemCheckState(CheckedListBox1.Items.IndexOf(itemChecked)).ToString() + ".")
Next
Код:
Dim x As Integer
Dim gchk, gchk1 As String
Dim itemChecked As Object
Const quote As String = """"
For Each x In CheckedListBox1.CheckedIndices
MessageBox.Show("Index#: " + x.ToString() + ", is checked. Checked state is:" + _
CheckedListBox1.GetItemCheckState(x).ToString() + ".")
gchk = CheckedListBox1.GetItemCheckState(0).ToString()
gchk1 = CheckedListBox1.GetItemCheckState(1).ToString()
Next
For Each itemChecked In CheckedListBox1.CheckedItems
' Use the IndexOf method to get the index of an item.
MessageBox.Show("Item with title: " + quote + itemChecked.ToString() + quote + _
", is checked. Checked state is: " + _
CheckedListBox1.GetItemCheckState(CheckedListBox1.Items.IndexOf(itemChecked)).ToString() + ".")
Next
Как можно звонить через обычный модем на городскую сеть, используя гарнитуру компьютера? Позвонить на линию и поднять трубку через AT команды помогает mscomm32.ocx. Входящий звук со стороны телефонной сети тоже отлично проходит, слышен в гарнитуре,а как передать в линию звук с микрофона? Модем PCI, аудио поддерживает, PCI SoftV92 Speakerphone Modem, чипсет Rockwell.
Devils_0411
Нужно вешать обработчик события на каждый чекбокс, чтобы при изменении его значения сразу отрабатывала процедура проверки и изменения значения соседнего чекбокса.
Нужно вешать обработчик события на каждый чекбокс, чтобы при изменении его значения сразу отрабатывала процедура проверки и изменения значения соседнего чекбокса.
[more] Всем доброго здоровья и исполнения желаний!
Прошу помочь с реализацией макроса.
Я инвалид, отсутствует возможность запоминать происходящее. Поэтому вынужден постоянно вести дневник. Дневник веду в OpenOffice Calc. Когда-то еще на MS Excel сделал себе удобный макрос "NextDay": нажимаешь кнопку Next и в строке, где находится курсор, вставляется жирная шапка заголовка дня, а левые столбцы со следующей строки заполняются парами "дата-день".
Сейчас бьюсь над подобным в Calc'е.
Соорудил следующее:
Sub CellProcessing(oCell)
ActSheet = ThisComponent.CurrentController.ActiveSheet 'определить активный лист
col = oCell.getRangeAddress().StartColumn 'первый столбец выделенной области
row = oCell.getRangeAddress().StartRow 'первая строка выделенной области
FirstColumnCell = ActSheet.GetCellByPosition(1,row) 'ячейка в первом столбце листа на первой строке выделенной области
txt = FirstColumnCell.getFormula() 'содержимое этой ячейки
If txt = "" Then 'если ячейка пустая, то
R = row ' R - обозначается текущая строка.
Found = False ' Found - признак того, что строка с предыдущей датой найдена.
Do While Not Found ' Цикл, пока не найдена строка с предыдущей датой:
If ActSheet.GetCellByPosition(R, 1).Value <> "" Then ' Если ячейка в первом столбце не пуста, то
PrevDayRow = R ' Запомнить строку с предыдущей датой;
Found = True ' Установить флаг, что найдена строка с предыдущей датой;
Exit Do ' Выйти из цикла.
Else ' Если текущая ячейка пуста, то
Found = False ' Флаг, что найдена строка с предыдущей датой - не устанавливать;
R = R - 1 ' Уменьшить номер текущей строки на 1;
End If ' Конец блока Если.
Loop ' К началу цикла.
Rw = PrevDayRow + 3 ' Строка начала следующего дня - отступив три строки от последней строки предыдущего дня.
NxtDay = "" ' Обозначение следующего дня недели.
ActSheet.GetCellByPosition(PrevDayRow, 1).Value = ActSheet.GetCellByPosition(PrevDayRow, 1).Value + 1
PrevDay = ActSheet.GetCellByPosition(PrevDayRow, 2).Value ' Считать предыдущий день недели.
If PrevDay = "Пн" Then NxtDay = "Вт" ' Тупо выбрать следующий день недели.
If PrevDay = "Вт" Then NxtDay = "Ср" '
If PrevDay = "Ср" Then NxtDay = "Чт" '
If PrevDay = "Чт" Then NxtDay = "Пт" '
If PrevDay = "Пт" Then NxtDay = "Сб" '
If PrevDay = "Сб" Then NxtDay = "Вс" '
If PrevDay = "Вс" Then NxtDay = "Пн" '
ActSheet.GetCellByPosition(Rw, 1).Value = "Дата" ' !
ActSheet.GetCellByPosition(Rw, 2).Value = "День" ' !
ActSheet.GetCellByPosition(Rw, 3).Value = "Время" ' !
ActSheet.GetCellByPosition(Rw, 4).Value = "Запись" ' !Заполнить строку заголовка.
ActSheet.GetCellByPosition(Rw, 5).Value = "Сохр" ' !
ActSheet.GetCellByPosition(Rw, 6).Value = "Вып." ' !
ActSheet.GetCellByPosition(Rw, 7).Value = "Планы-Заметки" ' !
ActSheet.GetCellByPosition(Rw, 8).Value = "Резюме" ' !
ActSheet.GetCellByPosition(Rw, 9).Value = "Сохр" ' !
'ActiveSheet.GetCellByPosition(Rw, 1).HorizontalAlignment = xlCenter ' Выровнять строку заголовка по центру.
'ActiveSheet.GetCellByPosition(Rw, 2).HorizontalAlignment = xlCenter
'ActiveSheet.GetCellByPosition(Rw, 3).HorizontalAlignment = xlCenter
'ActiveSheet.GetCellByPosition(Rw, 4).HorizontalAlignment = xlCenter
'ActiveSheet.GetCellByPosition(Rw, 5).HorizontalAlignment = xlCenter
'ActiveSheet.GetCellByPosition(Rw, 6).HorizontalAlignment = xlCenter
'ActiveSheet.GetCellByPosition(Rw, 7).HorizontalAlignment = xlCenter
'ActiveSheet.GetCellByPosition(Rw, 8).HorizontalAlignment = xlCenter
'ActiveSheet.GetCellByPosition(Rw, 9).HorizontalAlignment = xlCenter
'ActiveSheet.GetCellByPosition(Rw, 10).HorizontalAlignment = xlCenter
'ActiveSheet.GetCellByPosition(Rw, 11).HorizontalAlignment = xlCenter
'ActiveSheet.GetCellByPosition(Rw, 12).HorizontalAlignment = xlCenter
'ActiveSheet.GetCellByPosition(Rw, 13).HorizontalAlignment = xlCenter
'ActiveSheet.GetCellByPosition(Rw, 14).HorizontalAlignment = xlCenter
'ActiveSheet.GetCellByPosition(Rw, 15).HorizontalAlignment = xlCenter
'ActiveSheet.GetCellByPosition(Rw, 1).WrapText = False ' Отменить перенос по словам в строке заголовка.
'ActiveSheet.GetCellByPosition(Rw, 2).WrapText = False
'ActiveSheet.GetCellByPosition(Rw, 3).WrapText = False
'ActiveSheet.GetCellByPosition(Rw, 4).WrapText = False
'ActiveSheet.GetCellByPosition(Rw, 5).WrapText = False
'ActiveSheet.GetCellByPosition(Rw, 6).WrapText = False
'ActiveSheet.GetCellByPosition(Rw, 7).WrapText = False
'ActiveSheet.GetCellByPosition(Rw, 8).WrapText = False
'ActiveSheet.GetCellByPosition(Rw, 9).WrapText = False
'ActiveSheet.GetCellByPosition(Rw, 10).WrapText = False
'ActiveSheet.GetCellByPosition(Rw, 11).WrapText = False
'ActiveSheet.GetCellByPosition(Rw, 12).WrapText = False
'ActiveSheet.GetCellByPosition(Rw, 13).WrapText = False
'ActiveSheet.GetCellByPosition(Rw, 14).WrapText = False
'ActiveSheet.GetCellByPosition(Rw, 15).WrapText = False
'Range(ActiveSheet.GetCellByPosition(Rw, 1), ActiveSheet.GetCellByPosition(Rw, 15)).WrapText = False ' Запретить писать заголовок в две строки.
Rw = Rw + 1 ' Перейти к следующей строке после заголовка.
ActSheet.GetCellByPosition(Rw, 1).Value = NextDate ' Вставить следующую дату.
ActSheet.GetCellByPosition(Rw, 2).Value = NxtDay ' Вставить следующий день недели.
Rw = Rw + 1 ' Перейти к следующей строке.
ActSheet.GetCellByPosition(Rw, 1).Value = NextDate ' Вставить следующую дату.
ActSheet.GetCellByPosition(Rw, 2).Value = NxtDay ' Вставить следующий день недели.
Rw = Rw + 1 ' Перейти к следующей строке.
ActSheet.GetCellByPosition(Rw, 1).Value = NextDate ' Вставить следующую дату.
ActSheet.GetCellByPosition(Rw, 2).Value = NxtDay ' Вставить следующий день недели.
Rw = Rw + 1 ' Перейти к следующей строке после заголовка.
ActSheet.GetCellByPosition(Rw, 1).Value = NextDate ' Вставить следующую дату.
ActSheet.GetCellByPosition(Rw, 2).Value = NxtDay ' Вставить следующий день недели.
Rw = Rw + 1 ' Перейти к следующей строке.
ActSheet.GetCellByPosition(Rw, 1).Value = NextDate ' Вставить следующую дату.
ActSheet.GetCellByPosition(Rw, 2).Value = NxtDay ' Вставить следующий день недели.
Rw = Rw + 1 ' Перейти к следующей строке.
ActSheet.GetCellByPosition(Rw, 1).Value = NextDate ' Вставить следующую дату.
ActSheet.GetCellByPosition(Rw, 2).Value = NxtDay ' Вставить следующий день недели.
Rw = Rw + 1 ' Перейти к следующей строке.
ActSheet.GetCellByPosition(Rw, 1).Value = NextDate ' Вставить следующую дату.
ActSheet.GetCellByPosition(Rw, 2).Value = NxtDay ' Вставить следующий день недели.
End If
End Sub
При запуске на выполнение просто ничего не происходит. Выполняется программа, не выполняется - непонятно. В чем может быть проблема?
Помогите, пожалуйста, я в абсолютном тупике...
[/more]
Прошу помочь с реализацией макроса.
Я инвалид, отсутствует возможность запоминать происходящее. Поэтому вынужден постоянно вести дневник. Дневник веду в OpenOffice Calc. Когда-то еще на MS Excel сделал себе удобный макрос "NextDay": нажимаешь кнопку Next и в строке, где находится курсор, вставляется жирная шапка заголовка дня, а левые столбцы со следующей строки заполняются парами "дата-день".
Сейчас бьюсь над подобным в Calc'е.
Соорудил следующее:
Sub CellProcessing(oCell)
ActSheet = ThisComponent.CurrentController.ActiveSheet 'определить активный лист
col = oCell.getRangeAddress().StartColumn 'первый столбец выделенной области
row = oCell.getRangeAddress().StartRow 'первая строка выделенной области
FirstColumnCell = ActSheet.GetCellByPosition(1,row) 'ячейка в первом столбце листа на первой строке выделенной области
txt = FirstColumnCell.getFormula() 'содержимое этой ячейки
If txt = "" Then 'если ячейка пустая, то
R = row ' R - обозначается текущая строка.
Found = False ' Found - признак того, что строка с предыдущей датой найдена.
Do While Not Found ' Цикл, пока не найдена строка с предыдущей датой:
If ActSheet.GetCellByPosition(R, 1).Value <> "" Then ' Если ячейка в первом столбце не пуста, то
PrevDayRow = R ' Запомнить строку с предыдущей датой;
Found = True ' Установить флаг, что найдена строка с предыдущей датой;
Exit Do ' Выйти из цикла.
Else ' Если текущая ячейка пуста, то
Found = False ' Флаг, что найдена строка с предыдущей датой - не устанавливать;
R = R - 1 ' Уменьшить номер текущей строки на 1;
End If ' Конец блока Если.
Loop ' К началу цикла.
Rw = PrevDayRow + 3 ' Строка начала следующего дня - отступив три строки от последней строки предыдущего дня.
NxtDay = "" ' Обозначение следующего дня недели.
ActSheet.GetCellByPosition(PrevDayRow, 1).Value = ActSheet.GetCellByPosition(PrevDayRow, 1).Value + 1
PrevDay = ActSheet.GetCellByPosition(PrevDayRow, 2).Value ' Считать предыдущий день недели.
If PrevDay = "Пн" Then NxtDay = "Вт" ' Тупо выбрать следующий день недели.
If PrevDay = "Вт" Then NxtDay = "Ср" '
If PrevDay = "Ср" Then NxtDay = "Чт" '
If PrevDay = "Чт" Then NxtDay = "Пт" '
If PrevDay = "Пт" Then NxtDay = "Сб" '
If PrevDay = "Сб" Then NxtDay = "Вс" '
If PrevDay = "Вс" Then NxtDay = "Пн" '
ActSheet.GetCellByPosition(Rw, 1).Value = "Дата" ' !
ActSheet.GetCellByPosition(Rw, 2).Value = "День" ' !
ActSheet.GetCellByPosition(Rw, 3).Value = "Время" ' !
ActSheet.GetCellByPosition(Rw, 4).Value = "Запись" ' !Заполнить строку заголовка.
ActSheet.GetCellByPosition(Rw, 5).Value = "Сохр" ' !
ActSheet.GetCellByPosition(Rw, 6).Value = "Вып." ' !
ActSheet.GetCellByPosition(Rw, 7).Value = "Планы-Заметки" ' !
ActSheet.GetCellByPosition(Rw, 8).Value = "Резюме" ' !
ActSheet.GetCellByPosition(Rw, 9).Value = "Сохр" ' !
'ActiveSheet.GetCellByPosition(Rw, 1).HorizontalAlignment = xlCenter ' Выровнять строку заголовка по центру.
'ActiveSheet.GetCellByPosition(Rw, 2).HorizontalAlignment = xlCenter
'ActiveSheet.GetCellByPosition(Rw, 3).HorizontalAlignment = xlCenter
'ActiveSheet.GetCellByPosition(Rw, 4).HorizontalAlignment = xlCenter
'ActiveSheet.GetCellByPosition(Rw, 5).HorizontalAlignment = xlCenter
'ActiveSheet.GetCellByPosition(Rw, 6).HorizontalAlignment = xlCenter
'ActiveSheet.GetCellByPosition(Rw, 7).HorizontalAlignment = xlCenter
'ActiveSheet.GetCellByPosition(Rw, 8).HorizontalAlignment = xlCenter
'ActiveSheet.GetCellByPosition(Rw, 9).HorizontalAlignment = xlCenter
'ActiveSheet.GetCellByPosition(Rw, 10).HorizontalAlignment = xlCenter
'ActiveSheet.GetCellByPosition(Rw, 11).HorizontalAlignment = xlCenter
'ActiveSheet.GetCellByPosition(Rw, 12).HorizontalAlignment = xlCenter
'ActiveSheet.GetCellByPosition(Rw, 13).HorizontalAlignment = xlCenter
'ActiveSheet.GetCellByPosition(Rw, 14).HorizontalAlignment = xlCenter
'ActiveSheet.GetCellByPosition(Rw, 15).HorizontalAlignment = xlCenter
'ActiveSheet.GetCellByPosition(Rw, 1).WrapText = False ' Отменить перенос по словам в строке заголовка.
'ActiveSheet.GetCellByPosition(Rw, 2).WrapText = False
'ActiveSheet.GetCellByPosition(Rw, 3).WrapText = False
'ActiveSheet.GetCellByPosition(Rw, 4).WrapText = False
'ActiveSheet.GetCellByPosition(Rw, 5).WrapText = False
'ActiveSheet.GetCellByPosition(Rw, 6).WrapText = False
'ActiveSheet.GetCellByPosition(Rw, 7).WrapText = False
'ActiveSheet.GetCellByPosition(Rw, 8).WrapText = False
'ActiveSheet.GetCellByPosition(Rw, 9).WrapText = False
'ActiveSheet.GetCellByPosition(Rw, 10).WrapText = False
'ActiveSheet.GetCellByPosition(Rw, 11).WrapText = False
'ActiveSheet.GetCellByPosition(Rw, 12).WrapText = False
'ActiveSheet.GetCellByPosition(Rw, 13).WrapText = False
'ActiveSheet.GetCellByPosition(Rw, 14).WrapText = False
'ActiveSheet.GetCellByPosition(Rw, 15).WrapText = False
'Range(ActiveSheet.GetCellByPosition(Rw, 1), ActiveSheet.GetCellByPosition(Rw, 15)).WrapText = False ' Запретить писать заголовок в две строки.
Rw = Rw + 1 ' Перейти к следующей строке после заголовка.
ActSheet.GetCellByPosition(Rw, 1).Value = NextDate ' Вставить следующую дату.
ActSheet.GetCellByPosition(Rw, 2).Value = NxtDay ' Вставить следующий день недели.
Rw = Rw + 1 ' Перейти к следующей строке.
ActSheet.GetCellByPosition(Rw, 1).Value = NextDate ' Вставить следующую дату.
ActSheet.GetCellByPosition(Rw, 2).Value = NxtDay ' Вставить следующий день недели.
Rw = Rw + 1 ' Перейти к следующей строке.
ActSheet.GetCellByPosition(Rw, 1).Value = NextDate ' Вставить следующую дату.
ActSheet.GetCellByPosition(Rw, 2).Value = NxtDay ' Вставить следующий день недели.
Rw = Rw + 1 ' Перейти к следующей строке после заголовка.
ActSheet.GetCellByPosition(Rw, 1).Value = NextDate ' Вставить следующую дату.
ActSheet.GetCellByPosition(Rw, 2).Value = NxtDay ' Вставить следующий день недели.
Rw = Rw + 1 ' Перейти к следующей строке.
ActSheet.GetCellByPosition(Rw, 1).Value = NextDate ' Вставить следующую дату.
ActSheet.GetCellByPosition(Rw, 2).Value = NxtDay ' Вставить следующий день недели.
Rw = Rw + 1 ' Перейти к следующей строке.
ActSheet.GetCellByPosition(Rw, 1).Value = NextDate ' Вставить следующую дату.
ActSheet.GetCellByPosition(Rw, 2).Value = NxtDay ' Вставить следующий день недели.
Rw = Rw + 1 ' Перейти к следующей строке.
ActSheet.GetCellByPosition(Rw, 1).Value = NextDate ' Вставить следующую дату.
ActSheet.GetCellByPosition(Rw, 2).Value = NxtDay ' Вставить следующий день недели.
End If
End Sub
При запуске на выполнение просто ничего не происходит. Выполняется программа, не выполняется - непонятно. В чем может быть проблема?
Помогите, пожалуйста, я в абсолютном тупике...
[/more]
Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940
Предыдущая тема: для Hiper-six (индексы .nsx .smt) хоть что нибудь Опции
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.