imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 10.07.2005, 17:32     # 1
wolandino
Guest
 
Сообщения: n/a

обработка Excel

Долго думал, куда поместить эту тему...
Понадеялся, быть может найдется какое-то программерское решение...

Есть некоторый файл Excel, заполненный ссылками, типа www.site.ru?id==5, нужно изменить все ссылки на http://www.site.ru?id==5&id2====5

Ссылок много... как это можно реализовать?
 
Старый 11.07.2005, 09:45     # 2
papoose
Junior Member
 
Аватар для papoose
 
Регистрация: 20.10.2004
Адрес: Тюмень
Сообщения: 52

papoose Известность не заставит себя ждатьpapoose Известность не заставит себя ждать
Если адреса все одинаковые т.е. все ссылки одинаковые: www.site.ru?id==5, то Правка->Заменить... В поле найти:www.site.ru?id==5, заменить на: http://www.site.ru?id==5&id2====5. Ну ижмём заменить всё.
__________________
Маленький, лысенький, да ещё и в очках
papoose вне форума  
Старый 11.07.2005, 11:25     # 3
wolandino
Guest
 
Сообщения: n/a

видимо, я неправильно задал вопрос - есть куча ссылок, идентификатор в которых различный, поэтомум правка->заменить не подойдет...

как в MFC работать с экселевскими файлами можно?
 
Старый 11.07.2005, 11:52     # 4
SergoZD
::VIP::
 
Регистрация: 19.10.2003
Адрес: Питер
Пол: Male
Сообщения: 1 467

SergoZD Простой бог
SergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой бог
wolandino
Using Regular Expressions
Внизу прилеплен зиповский файл, там файл Excel с примерами regexp.
Поизучай макросы, да попробуй на их основе свой накатать.
SergoZD вне форума  
Старый 11.07.2005, 13:05     # 5
EvroStandart
Full Member
 
Аватар для EvroStandart
 
Регистрация: 20.01.2004
Адрес: Таллинн
Пол: Male
Сообщения: 623

EvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собой
Можно просто через соединение строк. В другой колонке прописать функцыю типа такого: "http://" & A1
Или через макрос аналогично соединить строки.
EvroStandart вне форума  
Старый 11.07.2005, 13:26     # 6
wolandino
Guest
 
Сообщения: n/a

спасибо, я попробую
 
Старый 11.07.2005, 17:50     # 7
SergoZD
::VIP::
 
Регистрация: 19.10.2003
Адрес: Питер
Пол: Male
Сообщения: 1 467

SergoZD Простой бог
SergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой бог
wolandino
Создай в Excel макрос следующего содержания:
Код:
Sub RegExp_Late_Execute_2()
Dim RegEx As Object, RegMatchCollection As Object
Dim Myrange As Range, C As Range, OutPutStr As String
Dim i          As Long

    Set RegEx = CreateObject("vbscript.regexp")

    With RegEx
        .Global = True
        .IgnoreCase = True
        .Pattern = "(\d)+"
    End With

    Set Myrange = ActiveSheet.Range("A1:A10")

    For Each C In Myrange
        OutPutStr = ""
        Set RegMatchCollection = RegEx.Execute(C.Value)

        If RegMatchCollection.Count > 0 Then
            OutPutStr = ""
            For i = 0 To RegMatchCollection.Count - 1 Step 1
                OutPutStr = OutPutStr & " " & RegMatchCollection(i)
            Next
            C.Offset(0, 1) = "http://www.site.ru?id==" & RegMatchCollection(0) & "&id2====" & RegMatchCollection(0)
        End If
    Next

    Set RegMatchCollection = Nothing
    Set RegEx = Nothing
    Set Myrange = Nothing

End Sub
То что выделено красным, необходимо исправить. Указаны ячейки таблицы, в которых лежат исходные ссылки.
В итоге рядом с исходным столбцом получится желаемый.
Делал из какого-то примера с уровнем знаний в данном вопросе = нулю, так что сильно не пинать. Главное работает как требуется.
Код:
www.site.ru?id==1   http://www.site.ru?id==1&id2====1
www.site.ru?id==2   http://www.site.ru?id==2&id2====2
www.site.ru?id==3   http://www.site.ru?id==3&id2====3
www.site.ru?id==4   http://www.site.ru?id==4&id2====4
www.site.ru?id==5   http://www.site.ru?id==5&id2====5
www.site.ru?id==6   http://www.site.ru?id==6&id2====6
www.site.ru?id==7   http://www.site.ru?id==7&id2====7
www.site.ru?id==8   http://www.site.ru?id==8&id2====8
www.site.ru?id==9   http://www.site.ru?id==9&id2====9
www.site.ru?id==10  http://www.site.ru?id==10&id2====10

Последний раз редактировалось SergoZD; 11.07.2005 в 19:27.
SergoZD вне форума  
Старый 12.07.2005, 01:36     # 8
wolandino
Guest
 
Сообщения: n/a

спасибо большое... (никаких приватов, родина должна знать своих героев))

Хотя все оказалось проще... нужно было просто открыть файл в текстовом редакторе и воспользоваться мощной функцией автозамены
 

Опции темы

Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 19:45.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.