Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.07.2009, 22:58   #1
shabbiness
 
Регистрация: 06.05.2009
Сообщений: 6
По умолчанию Работ с массивами в Word (VBA)

Передо мной стоит следующая задача. Имеется doc-файл, в котором занесена следующая информация вида:

Номер точки;Координата Х;Координата У
1;50.1;-50.1
2;100.2;-100.2
3;150.3;-150.3
4;200.4;-200.4
5;250.5;-250.5
6;300.6;-300.6
7;350.7;-350.7
1;50.1;-50.1

Мне нужно (а может и не нужно, см. ниже) сделать три символьных массива:
1 - всё от начала до первой ; каждой строки
2 - всё от первой до второй; каждой строки
3 - всё от второй ; до конца каждой строки
А затем поместить отдельно взятый элемент любого из массивов в заданную ячейку таблицы.

Меня конкретно интересует, как считать информацию, ограниченную ; или началом, концом строки. И что лучше с ней сделать, закинуть в буфер и вставить в ячейку, или присваивать элементу массива, а потом вставлять?
shabbiness вне форума Ответить с цитированием
Старый 20.07.2009, 23:06   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а просто выделить текст, в меню - Таблица - Преобразовать текст в таблицу - разделитель ;
Вас не устроит?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.07.2009, 23:25   #3
shabbiness
 
Регистрация: 06.05.2009
Сообщений: 6
По умолчанию

скорее всего нет, потому что все эти значения нужно будет распихать по шаблонной таблице, где ещё много чего, плюс, скорее всего, придётся ещё и расстояния вычислять
shabbiness вне форума Ответить с цитированием
Старый 21.07.2009, 00:24   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ок.
можно, конечно, написать код, используя строковые функции ( Pos = InStr(s, ";") и Left(...) или Mid(...)

но можно и доверить парсинг строки самому VBA.
вот, попробуйте такой код:
Код:
Sub test1()
  Dim s As String, a As Variant, i As Long
  s = "1;50.1;-50.1"
  a = Split(s, ";")
  For i = LBound(a) To UBound(a)
    MsgBox Str(i) & "-й элемент массива = " & a(i)
  Next i
End Sub
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.07.2009, 18:36   #5
shabbiness
 
Регистрация: 06.05.2009
Сообщений: 6
По умолчанию

я условие задачи немного неправильно написал, doc-файлов может быть несколько и координаты могут быть разными, т.е. массив может заполниться только после считывания данных
shabbiness вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с массивами (язык VBA) Иришка89 Помощь студентам 11 14.11.2012 00:34
В Word на VBA сделать макрос Генерал_Касетр Фриланс 4 15.06.2009 17:38
как создать элементы управления в Word на VBA??? Генерал_Касетр Помощь студентам 0 15.06.2009 17:35
Задача по VBA в Word оксаночка Помощь студентам 3 07.05.2009 14:03
задачка по VBA в Word konfetka Помощь студентам 8 23.04.2009 16:47