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

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

by
Offline Offline

« : 16-04-2012 17:22 » 

Помогите выполнить такое задание:
 создать программу для работы с числами в выделенном диапозоне таблицы Word. Программа должна осуществлять расчет следующих функций: сумма всех элементов, количество элементов, среднее арифметическое всех элементов, min и max элемент. Результат показывать на отдельной форме и записывать в буфер обмена. Осуществить вызов программы с использованием кнопки на панели инструментов и нажатия сочетания клавиш.
 Вот набросок. Только не понимаю, как работать только с выделенным диапозоном таблицы Word
Код: (Visual Basic)
Dim List As Table
Set List = ThisDocument.Tables.Application.Selection
Dim Array_Var() As Double
Dim s, sr, min, max As Double
Dim i, j, m, k As Integer
For i = 1 To High Step 1
For j = 1 To High Step 1
ReDim Array_Var(i,j)
Array_Var(i,j) = CDbl(List.Cell(i, j))
Next i
Next j
s = 0
For i = 1 To High Step 1
For j = 1 To High Step 1
s = s + Array_Var(i, j)
Next i
Next j
k = 0
For i = 1 To High Step 1
For j = 1 To High Step 1
k = k + 1
Next i
Next j
sr = s / k
max = Array_Var(1, 1)
For i = 1 To High Step 1
For j = 1 To High Step 1
If Array_Var(i, j) > max Then max = Array_Var(i, j)
End If
Next i
Next j
min = Array_Var(1, 1)
For i = 1 To High Step 1
For j = 1 To High Step 1
If Array_Var(i, j) < min Then min = Array_Var(i, j)
End If
Next i
Next j [/code=vb]
Помогите пожалуйста доделать, так как в VBA не понимаю очень.
Записан
RXL
Технический
Администратор

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

WWW
« Ответ #1 : 16-04-2012 18:27 » 

gaishnik, запускаешь Word, подготавливаешь контекст, включаешь запись макроса, выполняешь действия, выключаешь запись макроса, изучаешь получившийся макрос и переписываешь его под свою задачу.
Записан

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

by
Offline Offline

« Ответ #2 : 16-04-2012 20:30 » 

Я пробовал делать так. И просто оно корретно работало с выделенной областью такого размера, как я выбирал при записи макроса, а мне чтобы оно произвольные диапозоны считало.
Записан
RXL
Технический
Администратор

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

WWW
« Ответ #3 : 17-04-2012 04:03 » 

gaishnik, это я в последних двух пунктах описал:
..., изучаешь получившийся макрос и переписываешь его под свою задачу.

Более конкретную информацию по конкретным объектам ищи на msdn.microsoft.com.
Записан

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

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

« Ответ #4 : 17-04-2012 06:24 » 

У Word, есть справка по VBA и его объектной модели, с примерами.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines