RomCom
|
|
« : 25-04-2006 02:01 » |
|
Q: Как подсчитать сумму полей в столбце таблицы Access
A: Сделай SQL-запрос select sum(Поле1),sum(Поле2),sum(Поле3) from Таблица1
|
|
« Последнее редактирование: 25-04-2006 07:06 от RomCom »
|
Записан
|
R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
|
|
|
RomCom
|
|
« Ответ #1 : 25-04-2006 05:18 » |
|
Q: Добавление узлов в TreeViewA:Dim parent, chld As Node
With TreeView1.Nodes 'добавлаем первый главный узел Set parent = .Add(, , , "Node1") 'раскрываем Node1 parent.Expanded = True 'добавлаем подузел для Node1 Set chld = .Add(parent, tvwChild, , "Node1_1")
'добавлаем два подузла для Node1_1 Call .Add(chld, tvwChild, , "Node1_1_1") Call .Add(chld, tvwChild, , "Node1_1_2") 'добавлаем второй главный узел Call .Add(, , , "Node2") End With
|
|
« Последнее редактирование: 06-12-2007 17:49 от Алексей1153++ »
|
Записан
|
R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
|
|
|
RomCom
|
|
« Ответ #2 : 25-04-2006 05:23 » |
|
Q: Преобразование TextBox1.Text в числовой тип
A: Два варианта. 1) Val(TextBox1.Text) - выдает результат в любом случае. пытается "выжить" из строки число. например: Val("123 ш 9") вернет 123. 2) Функции семейства "Type Conversion Functions": CDbl, CByte, CCur, CDec, CInt, CLng, CSng - в случае не корректности строки вызывают Exception
|
|
|
Записан
|
R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
|
|
|
RomCom
|
|
« Ответ #3 : 25-04-2006 05:26 » |
|
Q: Как запретить просмотр макроса VBA
A: В VBA IDE, вызвать свойство проекта (Tools --> Project Properties...). На закладке "Protection" поставить галочку "Lock project for viewing" и устанавить пароль в поле "Password to view project properties".
|
|
|
Записан
|
R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
|
|
|
RomCom
|
|
« Ответ #4 : 25-04-2006 05:40 » |
|
Q: Как в VB работать с com-портом?
A: Через ActiveX объект MSCOMM32 (MSCOMM32.OCX).
|
|
|
Записан
|
R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
|
|
|
RomCom
|
|
« Ответ #5 : 25-04-2006 07:05 » |
|
Q: Как сделать SQL-запрос к таблице Access в VBAA:Dim rs As Recordset Set rs = CurrentDb.OpenRecordset("select Поле1, sum(Поле2) from Таблица1 group by Поле1") name = rs.Fields("Поле1").Value sum = rs.Fields(1).Value rs.Close В итоге получим в name значение поля "Поле1", а в sum сумму по полю "Поле2".
|
|
« Последнее редактирование: 25-04-2006 07:09 от RomCom »
|
Записан
|
R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
|
|
|
RomCom
|
|
« Ответ #6 : 25-04-2006 07:51 » |
|
Q: В цикле дать возможность программе перерисовать окно, обработать нажатия клавиатуры или мышиA:В теле цикла необходимо вызвать функцию DoEvents For i = 1 To 100 'что делаем .... DoEvents Next
|
|
« Последнее редактирование: 06-12-2007 17:50 от Алексей1153++ »
|
Записан
|
R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
|
|
|
RomCom
|
|
« Ответ #7 : 25-04-2006 08:11 » |
|
Q: Найти (заменить) в MSWord текст с определеным форматированиемA:Приведенный ниже код ищет в документе текст с цветом шрифта "Изумрудный" и изменяет цвет шрифта на "белый", цвет фона на "фиолетовый" With Selection.Find .ClearFormatting 'очищаем формат поиска .Text = "" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False .Font.Color = wdColorSeaGreen 'цвет Изумрудный While .Execute If .Found Then Selection.Font.Color = wdColorWhite ' белый Selection.Range.HighlightColorIndex = wdViolet 'фиолетовый End If Wend End With
|
|
« Последнее редактирование: 06-12-2007 17:51 от Алексей1153++ »
|
Записан
|
R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
|
|
|
RomCom
|
|
« Ответ #8 : 28-04-2006 04:53 » |
|
Q: Как в Excel узнать где кончается таблица, адрес последней ячейки?A:С помощью функции SpecialCells можно узнать адрес правой нижней ячейкиDim rng As Range Dim LastAdr, LastRow, LastColumn As Integer Set rng = ActiveSheet.Cells.SpecialCells(xlLastCell) LastAdr = rng.Address(RowAbsolute = True, ColumnAbsolute = True) ' Адрес правой нижней ячейки LastColumn = rng.Column 'Номер правого столбца таблицы LastRow = rng.Row 'Номер последней строки таблицы
|
|
« Последнее редактирование: 06-12-2007 17:51 от Алексей1153++ »
|
Записан
|
R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
|
|
|
RomCom
|
|
« Ответ #9 : 28-04-2006 05:50 » |
|
Q: Есть ли в VBA какая-нибудь стандартная функция для преобразования hex-числа в десятичное? Есть функция val(), но она, к сожалению, некорректно работает с числами в диапазоне H8000 (дес. - 32768) - HFFFF (дес. - 65535): возвращает отрицательное значение.A:Функция Val() работает корректно. Отрицательные значения получаются из-за того что все числовые типы данных в VBA знаковые. "H8000" будет равняться "-32768" для 32 битного целого типа сознаком (Integer). Что бы преобразовать строку из hex-числа в десятичное, достаточно просто присвоить значение строки переменной числового типа. Dim b As Double, a As String a = InputBox("Введите hex-число:") b = "&H" & a Debug.Print b
|
|
« Последнее редактирование: 01-05-2006 08:25 от RomCom »
|
Записан
|
R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
|
|
|
RomCom
|
|
« Ответ #10 : 02-05-2006 02:57 » |
|
Q: Мне надо сделать так что б в Excel при нажатие на любую ячейку из диапазона (например B2:V2), появлялось диалоговое окно, которое я создам на VBA.A:Необходимо обработать событие Worksheet_SelectionChange для листа: Private Const startCol As Integer = 2 'начальный диапазон колонок (В) Private Const endCol As Integer = 22 'конечный диапазон колонок (V) Private Const startRow As Integer = 2 'начальный диапазон строк Private Const endRow As Integer = 2 'конечный диапазон строк
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column >= startCol And Target.Column <= endCol Then If Target.Row >= startRow And Target.Row <= endRow Then UserForm1.Show 'вызов диалогового окна End If End If End Sub
|
|
« Последнее редактирование: 06-12-2007 17:52 от Алексей1153++ »
|
Записан
|
R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
|
|
|
RomCom
|
|
« Ответ #11 : 02-05-2006 04:59 » |
|
Q: У меня в Excel (Word) есть на форме textbox, value-значение которого например равно 100, как сохранить измененное значение textboxа, например я ввела 150 и надо чтоб при следующем запуске программы в textboxе было уже 150?A:Для хранения ползовательских данных есть специальная коллекция CustomDocumentProperties. Приведенный ниже код сохраняет в этой коллекции текущую дату и время при открытии и показывает это значение при следующем открытии. Private Sub Workbook_Open() If ThisWorkbook.CustomDocumentProperties.Count > 0 Then MsgBox "Last Open Date " & ThisWorkbook.CustomDocumentProperties(1).Value ThisWorkbook.CustomDocumentProperties(1).Value = Now Else Call ThisWorkbook.CustomDocumentProperties.Add("LastOpenDate", False, msoPropertyTypeDate, Now, False) End If ThisWorkbook.Save End Sub
|
|
|
Записан
|
R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
|
|
|
RomCom
|
|
« Ответ #12 : 02-05-2006 05:35 » |
|
Q: Как в Excel (Word) узнать количество дней (недель) прошедших с начала года, квартал и т.д.?A:Для этого существует функция DatePart(interval, date). MsgBox DatePart("ww", Now) ' - покажет кол. прошедших недель с начала года Другие полезные значения для параметра interval: q - Получить номер квартала y - Количество дней прошедших с начала года w - День недели ww - Количество недель прошедших с начала года
|
|
« Последнее редактирование: 06-12-2007 17:53 от Алексей1153++ »
|
Записан
|
R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
|
|
|
RomCom
|
|
« Ответ #13 : 02-05-2006 05:50 » |
|
Q: Как в Excel (Word) из строки поучить слова разделенные определенным символом (например пробелом)?A:Исползуйте функцию Split для разделения строки в массив (Array). Следующий пример разделяет строку на слова: wdA=Split(ActiveCell.Value, " ", , vbBinaryCompare)
|
|
|
Записан
|
R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
|
|
|
RomCom
|
|
« Ответ #14 : 02-05-2006 06:23 » |
|
Q: Как узнать есть ли в числе запятая (целое оно или с дробной частью)?A:Самый простой способ: x- число if x=round(x) then x - без запятой else x - с запятой end if
|
|
|
Записан
|
R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
|
|
|
RomCom
|
|
« Ответ #15 : 02-05-2006 06:41 » |
|
Q: Как в Excel (Word) из VBA читать данные из текстового файла?A:Для этого можно использовать стандартные для VB функции Open, Line, Close. Пример чтения из файла: Dim InputData Open "file.txt" For Input As #1 ' Открываем файл для чтения Do While Not EOF(1) ' проверяем на конец файла. Line Input #1, InputData ' Считываем строку. Debug.Print InputData ' показываем строку в окне отладчика. Loop Close #1 ' Закрываем файл
|
|
« Последнее редактирование: 06-12-2007 17:53 от Алексей1153++ »
|
Записан
|
R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
|
|
|
|