Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Basic / VBA


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Basic/VBA

Выпуск № 298
от 07.06.2006, 17:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 176, Экспертов: 25
В номере:Вопросов: 3, Ответов: 5


Вопрос № 44957: Большое спасибо за ответы !!! А можно перемещать Combo1 ? Есть еще вопрос как пользователь может управлять свойствами Width, Height т.е. мог сам задать ширину и длину. С уважением Александр....
Вопрос № 44962: Доброе время суток! У меня есть задача в которой надо найти максимальній ел-т матрицы (матрица уже есть в экселе)(см приложение) Что необходимо изменить чтобы выполнялась следущая задача: Задано число А. найти суму ел-в матрицы, котор...
Вопрос № 44965: Всем огромнейшее спасибо !!! Вопросы по перемещению компонентов сняты !!! Есть наболевший вопрос. Можно ли компонентом VideoSoft FlexGrid -вывести текст вертикально, -если текст большой вместить его в ячеке с переносом. ...

Вопрос № 44.957
Большое спасибо за ответы !!!
А можно перемещать Combo1 ?

Есть еще вопрос как пользователь может управлять свойствами Width, Height т.е. мог сам задать ширину и длину.
С уважением Александр.
Отправлен: 02.06.2006, 10:15
Вопрос задал: Гробенюк Александр Александрович (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Miklucho
Здравствуйте, Гробенюк Александр Александро
Что значит как? Просто пишите например:

text1.Width=1000
и т.д.

Должно работать.
Ответ отправил: Miklucho (статус: Студент)
Ответ отправлен: 02.06.2006, 10:26

Отвечает: Коляка Вадим
Здравствуйте, Гробенюк Александр Александрович!
Все очень просто. К нужным свойствам можно обратится следующим образом:
Имя_Объекст.Свойство. Например Text1.Width или Text1.Height
Они могут принимать значения. Так например мы хотим, что бы размеры тест бокса при клике на кнопку увеличились в 2 раза. Разместите на форме Command1 и Text1
Private Sub Command1_Click()
Text1.Width = Text1.Width * 2
Text1.Height = Text1.Height * 2
End Sub
Если необходимо передать определенные размеры, тогда нарисуйте на форме Text2, в него мы будем заносить нужную нам ширину, а в Text3 - необходимую высоту.
Тогда получим:
Private Sub Command1_Click()
Text1.Width = Text2.Text
Text1.Height = Text3.Text
End Sub
(только ж размеры указывать реальные, что бы не выходили за границы, ну или прийдется делать проверку)
Для перемещения комбо-бокса см. приложение, это единственное что в голову пришло(

Приложение:

Ответ отправил: Коляка Вадим (статус: 2-ой класс)
Ответ отправлен: 02.06.2006, 10:53
Оценка за ответ: 5


Вопрос № 44.962
Доброе время суток!
У меня есть задача в которой надо найти максимальній ел-т матрицы
(матрица уже есть в экселе)(см приложение)
Что необходимо изменить чтобы выполнялась следущая задача:
Задано число А. найти суму ел-в матрицы, которые больше А.

Приложение:

Отправлен: 02.06.2006, 11:18
Вопрос задал: sexy (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Genyaa
Здравствуйте, Sexy!

Я бы решил поставленную задачу с помощью встроенной функции Excel SumIf (СУММЕСЛИ):

SumBiggerA = Application.WorksheetFunction.SumIf(Range(Cells(1, 1), Cells(n, m)), ">" & A)

(Кстати, поиск позиции максимального элемента в ячейках на листе Excel тоже решается с помощью встроенных функций, так, что использования массивов в программе можно было бы избежать вообще.)

---------
Всякое решение плодит новые проблемы.
Ответ отправил: Genyaa (статус: 6-ой класс)
Ответ отправлен: 02.06.2006, 11:57

Отвечает: Коляка Вадим
Здравствуйте, Sexy!
Вот вариант решения для матрицы, 4х3, где 1-й элемент находится в ячейке (1,1)
Добавте на форму Command1 и Text1
В текст-боксе введите число, по отношению к котрому нужно суммировать элементы
Private Sub Command1_Click()
Dim e As New Excel.Application
e.Workbooks.Open ("d:Matrix.xls")
Dim i As Integer
Dim j As Integer
Dim Summ As Integer
Summ = 0
For i = 1 To 4
For j = 1 To 3
If e.Cells(i, j) > Text1.Text Then Summ = Summ + e.Cells(i, j)
Next
Next
MsgBox Summ
e.Workbooks.Close
End Sub
Ответ отправил: Коляка Вадим (статус: 2-ой класс)
Ответ отправлен: 02.06.2006, 13:34


Вопрос № 44.965
Всем огромнейшее спасибо !!! Вопросы по перемещению компонентов сняты !!!

Есть наболевший вопрос.
Можно ли компонентом VideoSoft FlexGrid
-вывести текст вертикально,
-если текст большой вместить его в ячеке с переносом.

Если нет Есть ли такой компонент.
С уважением Александр.
Отправлен: 02.06.2006, 11:36
Вопрос задал: Гробенюк Александр Александрович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Коляка Вадим
Здравствуйте, Гробенюк Александр Александрович!
Для вывода текста вертикально удобно было бы использовать другой контрол, например вертикальная лэйбла, или ее "имитатор". (vbrussian.com/Controls.asp?Page=9, 83-й пукнкт)
Что бы переносить текст по словам, у объекта есть свойсво WordWrap. Оно есть у тех же текст-бокса, лэйблы.
Ответ отправил: Коляка Вадим (статус: 2-ой класс)
Ответ отправлен: 02.06.2006, 13:44


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.34 от 01.06.2006
Яндекс Rambler's Top100

В избранное