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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2013, 22:03   #1
Boris26rus
Новичок
Джуниор
 
Регистрация: 30.05.2013
Сообщений: 1
По умолчанию Повторяющиеся данные, длинные строки, VBS

Добрый вечер.
Я только учусь писать на VBS. Общий смысл такой - берем данные из Excel и переносим их в Word.
Проблема:
1. в Excel-файле бывают несколько одинаковых строк, которые все переносятся в Word. Но мне не надо их переносить, если они одни и те же (например в Excel есть: Иванов, Петров,Иванов, то перенести нужно: "Иванов, Петров")

Но получается так:
"Петров
прож. по адресу:
Иванов
прож. по адресу:
Иванов
прож. по адресу:"
А нужно:
"Иванов
прож. по адресу:
Петров
прож. по адресу:"

2. при запуске, когда много фамилий, выдает ошибку - "Слишком длинный строковый параметр"
3. после создания нового файла, если закрыть документ ворд и потом открыть, то фамилии отображаются в одну строку, а не в столбец.

Код:
Set oArg = Wscript.Arguments
fName = oArg.Item(0)

Set objCon = CreateObject("ADODB.Connection")
Set objRec = CreateObject("ADODB.Recordset")

'objCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&fName&";Extended Properties=""Excel 8.0;HDR=Yes;"";"
objCon.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="&fName&";Extended Properties=""Excel 12.0 Xml;HDR=Yes;"";"
objRec.Open "Select * From [1$]",objCon,3,3

i=1
Do Until objRec.EOF
	 	
	 IF i=2 THEN raschet=objRec.Fields(0)
	 i=i+1

	 IF objRec.Fields(2) = "Фамилия" 	THEN por1 	= por1&chr(13)&objRec.Fields(3)&"," &chr(13)& "прож. по адресу:"
	 IF objRec.Fields(2) = "Договор:" 	THEN dp 	= dp&objRec.Fields(3)&", "
                            
 	 objRec.MoveNext
Loop

Set oWord = CreateObject("Word.Application")
oWord.Visible = True
Const wdReplaceAll = 2

autor = oWord.username

Set oDoc = oWord.Documents.Open("C:\1\Данные\1.rtf")
Set oSel = oWord.Selection
oSel.Find.Forward = TRUE
oSel.Find.MatchWholeWord = TRUE

oSel.Find.Execute "por1"   	,,,,,,,,,por1    	,wdReplaceAll
oSel.Find.Execute "dp"   	,,,,,,,,,dp	    	,wdReplaceAll
oSel.Find.Execute "raschet"	,,,,,,,,,raschet 	,wdReplaceAll
oSel.Find.Execute "autor"	,,,,,,,,,autor		,wdReplaceAll

oDoc.SaveAs("c:\1\1 "&dp&".doc")
Помогите, пожалуйста!
Вложения
Тип файла: rar 1.rar (21.0 Кб, 6 просмотров)

Последний раз редактировалось Boris26rus; 30.05.2013 в 22:08.
Boris26rus вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MSSQL длинные строки Greek9000 SQL, базы данных 6 08.04.2011 12:12
Отбирать повторяющиеся данные с таблицы и формировать с них другую xXx666 Microsoft Office Excel 3 28.10.2009 14:16
Повторяющиеся строки в таблице Talemir БД в Delphi 2 20.08.2009 23:07
повторяющиеся данные в dbgrid - ? Evgenii БД в Delphi 6 20.07.2009 00:18
повторяющиеся строки ShenDy Общие вопросы C/C++ 4 27.03.2008 08:52