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

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: VBA. Работа с таблицей Word  (Прочитано 13254 раз)
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
Гость
« Ответ #4 : 17-04-2012 06:24 » new

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

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines