powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Долгая обработка текстовых данных в Экселе
25 сообщений из 172, страница 3 из 7
Долгая обработка текстовых данных в Экселе
    #36548708
motorway
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Написать прогу, конечно, можно всегда, но по трудозатратам и качеству результата все будет хуже, чем при использовании Эксела. Я уже пробовал использовать покупные таблицы для организации веб-интерфейса, но получилось, что там многих нужных функций нет - автозаполнение и т.п.
Реализовывать все это самостоятельно не очень-то хочется, проблем и так хватает. Даже основные функции Эксела долго реализовывать самостоятельно. Интерфейс нужен в виде электронной таблицы.
Никаких сверх-требований вроде нет, просто используются основные возможности Эксела - шрифты, стили, примечания. Вещи все стандартные, просто данные передаются с помощью сети, ну и, может, примечаний много. А так все обычно.
...
Рейтинг: 0 / 0
Долгая обработка текстовых данных в Экселе
    #36548758
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
motorwayТ.е. вы имеете в виду перезапись - вместо текущего файла подставляется XML сгенерированный?

Генеришь xml-файл, огрызок содержания которого привел Antonariy , далее открываешь его Excel-ем (можно при этом сделать окончательную доводку, если нужно) и сохраняешь в нужном формате.

Кстати, давно было, но вроде если эту xml-ку переименовать в xls и запустить, то Excel ее вполне нормально откроет...
...
Рейтинг: 0 / 0
Долгая обработка текстовых данных в Экселе
    #36548878
motorway
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все-таки, наверно, буду пытаться пока без xml ускорить все это дело.
...
Рейтинг: 0 / 0
Долгая обработка текстовых данных в Экселе
    #36548943
motorway
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А есть ли возможность использовать не VBA, а что-нибудь более быстрое для обновления ячеек и примечаний? Может, dll как-то использовать?
...
Рейтинг: 0 / 0
Долгая обработка текстовых данных в Экселе
    #36548957
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто вы говорите о 20000 ячеек. Причем каждая может быть оформленна индивидуально. А это все время. Одно дело 100 000
ячеек заполнять как предлагал AndrF
Код: plaintext
Cells( 2 ,  2 ).CopyFromRecordset r
и потом всем сделать
одинаковый формат:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
With XLSheet.Range(XLSheet.cells( 1 , 1 ), XLSheet.cells(r.RecordCount+ 1 ,  2 ))
 .BorderS(xlDiagonalDown).LineStyle = xlNone
 .BorderS(xlDiagonalUp).LineStyle = xlNone
 With .BorderS(xlEdgeLeft)
  .LineStyle = xlContinuous
  .Weight = xlThin
  .colorindex = xlAutomatic
 Endwith
 With .BorderS(xlEdgeTop)
  .LineStyle = xlContinuous
  .Weight = xlThin
  .colorindex = xlAutomatic
 Endwith
 With .BorderS(xlEdgeBottom)
  .LineStyle = xlContinuous
  .Weight = xlThin
  .colorindex = xlAutomatic
 Endwith
 With .BorderS(xlEdgeRight)
  .LineStyle = xlContinuous
  .Weight = xlThin
  .colorindex = xlAutomatic
 Endwith
 Try && наверное может быть ситуация, когда будет только одна строка
*     И тогда не будет понятия "внутренние горизонтальные линии" и будет ошибки
*     Вот её тихонько перехватим и будем работать дальше
  With .BorderS(xlInsideVertical)
   .LineStyle = xlContinuous
   .Weight = xlThin
   .colorindex = xlAutomatic
  Endwith
 Catch To oerr
 Endtry
 Try && наверное может быть ситуация, когда будет только одна строка
*     И тогда не будет понятия "внутренние горизонтальные линии" и будет ошибки
*     Вот её тихонько перехватим и будем работать дальше
  With .BorderS(xlInsideHorizontal)
   .LineStyle = xlContinuous
   .Weight = xlThin
   .colorindex = xlAutomatic
  Endwith
 Catch To oerr
 Endtry
Endwith
и делать тоже самое но для каждой ячейки отдельно:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Option Explicit

Sub sdg()
Dim i As Long, dts As Date
dts = Now
For i =  1  To  50000 
    Cells(i,  1 ).Value = "A - " & CStr(i)
    Cells(i,  1 ).VerticalAlignment = - 4108 
    Cells(i,  1 ).WrapText = True
    Range("A" & CStr(i)).BorderAround xlContinuous, xlThin
    Cells(i,  1 ).Font.Size =  8 

    Cells(i,  2 ).Value = "B - " & CStr(i)
    Cells(i,  2 ).VerticalAlignment = - 4108 
    Cells(i,  3 ).WrapText = True
    Range("B" & CStr(i)).BorderAround xlContinuous, xlThin
    Cells(i,  2 ).Font.Size =  8 
Next i
MsgBox CStr(Now) & vbCrLf & CStr(dts)
End Sub
разница бывает очень значительна. И объясните мне, зачем пользователю одномоментно 20000 значений со своей
цветовой градуировкой и спрятанными примечаниями, и при этом время обновления настолько критично, что пару минут уже
много?

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Долгая обработка текстовых данных в Экселе
    #36548988
motorway
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно, различные цвета и стили ячеек сейчас сделаны просто для удобства работы с большой моделью. При финансовых вычислениях часто по-разному выделяются конкретные ячейки, чтобы было понятнее. Но это как раз не предполагается менять.
В основном я планировал менять цвет шрифта у изменившихся после вычислений ячеек, чтобы было видно, какие изменились. Потому что в большой таблице это отслеживать трудно.
Примечания меняются не так часто, но иногда это нужно делать, а при этом ждать больше 30 секунд уже напряг. У меня просто так реализовано всё, что в примечаниях хранится доп. информация, которую нельзя поместить в ячейку сразу, так как там может быть уже число какое-то. Т.е., как бы еще одно измерение.
Вручную пользователь обычно менять будет гораздо меньше, чем 20000 примечаний, но иногда, например при удалении строк, примечания должны автоматически обновиться для большого числа ячеек.
В общем, пользователи будут довольно требовательные, скорее всего. Просто надо исходить из того, что они не привыкли в Экселе долго ждать, а если здесь будет больше ~20 секунд, уже начнутся мысли, стоит ли пользоваться этим.
...
Рейтинг: 0 / 0
Долгая обработка текстовых данных в Экселе
    #36549007
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для измерений есть сводные таблицы, для самих данных есть специальный сервис OLAP называется и там есть свои стратегии
хранения данных. Просто я прекрасно понимаю что человек при всем своем желании не сможет быстро даже осмотреть все
двадцать тысяч, вообщем я уже говорил что в ексель, большие объемы данных частообновляемых данных лучше брать из БД, а
не парсить раз за разом, потом можно пройтись и по рекордсету разукрасить ячейки и понаставить примечания, хотя именно
это и будут самые времязатратные действия

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Долгая обработка текстовых данных в Экселе
    #36549011
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
motorwayа если здесь будет больше ~20 секунд, уже начнутся мысли, стоит ли пользоваться этим.

Сделайте правильный прогресс-индикатор. Это обычно в разы облегчает раздражение пользователя.


ЗЫ: Можно выводить случайный анекдот
...
Рейтинг: 0 / 0
Долгая обработка текстовых данных в Экселе
    #36549017
motorway
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пользоваться системой будут, если получится, не обычные "одиночные пользователи", а люди из фирмы с большими запросами. Так что если такая ситуация будет на первом испытании системы, дальше они даже разговаривать не будут. :)
...
Рейтинг: 0 / 0
Долгая обработка текстовых данных в Экселе
    #36549020
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что касается вариантов с формированием файла xml и последующим открытием. А кто сказал, что подобная операция (включая открытие файла с таким количеством записей) займет меньше 20 секунд?... так что, может и не выход
...
Рейтинг: 0 / 0
Долгая обработка текстовых данных в Экселе
    #36549023
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: motorway
> Пользоваться системой будут, если получится, не обычные "одиночные пользователи", а люди из фирмы с большими
> запросами. Так что если такая ситуация будет на первом испытании системы, дальше они даже разговаривать не будут. :)

Т.е. у тебя на тестовых данных затык, и нет вариантов как решить, что будет когда за дело примутся motorwayлюди
из фирмы с большими запросами.?
вообщем пробуй, здесь тебе понакидали идей :)
удачи

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Долгая обработка текстовых данных в Экселе
    #36549031
motorway
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну то есть это не шутки, обычные пользователи могут и подождать, а когда подписывается договор с фирмой и т.п., то если качество не устраивает, то и дальше работать не будут.
...
Рейтинг: 0 / 0
Долгая обработка текстовых данных в Экселе
    #36549067
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProЧто касается вариантов с формированием файла xml и последующим открытием. А кто сказал, что подобная операция (включая открытие файла с таким количеством записей) займет меньше 20 секунд?... так что, может и не выход

Ну мой пример в 50 тыс записей срабатывает где-то за секунду.

А вообще приходилось в былые времена видеть Excel-евские файлы открывающиеся минут по 15..20. Где-то в 98-м году примерно - столько тогда в них бухгалтерия напихивала...

Интересно - а автору топика действительно Excel-евский файл нужен, а не Grid??? А то гложет сомнение что может он не по той дороге вообще идет...
...
Рейтинг: 0 / 0
Долгая обработка текстовых данных в Экселе
    #36549073
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndrFИнтересно - а автору топика действительно Excel-евский файл нужен, а не Grid??? А то гложет сомнение что может он не по той дороге вообще идет...

Да как я понял, пользователи потом юзают функционал экселя, так что не выход...
...
Рейтинг: 0 / 0
Долгая обработка текстовых данных в Экселе
    #36549077
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProAndrFИнтересно - а автору топика действительно Excel-евский файл нужен, а не Grid??? А то гложет сомнение что может он не по той дороге вообще идет...

Да как я понял, пользователи потом юзают функционал экселя, так что не выход...

Ну если только так... Но и с Excel-ем все решаемо, как оказалось...
...
Рейтинг: 0 / 0
Долгая обработка текстовых данных в Экселе
    #36549175
motorway
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProAndrFИнтересно - а автору топика действительно Excel-евский файл нужен, а не Grid??? А то гложет сомнение что может он не по той дороге вообще идет...

Да как я понял, пользователи потом юзают функционал экселя, так что не выход...
Да, грид я уже пробовал, причем он стоил 800 у.е. Там нет многих вещей...
...
Рейтинг: 0 / 0
Долгая обработка текстовых данных в Экселе
    #36549284
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndrFКстати, давно было, но вроде если эту xml-ку переименовать в xls и запустить, то Excel ее вполне нормально откроет...Прекрасно откроет и без переименования.
...
Рейтинг: 0 / 0
Долгая обработка текстовых данных в Экселе
    #36551717
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyAndrFКстати, давно было, но вроде если эту xml-ку переименовать в xls и запустить, то Excel ее вполне нормально откроет...Прекрасно откроет и без переименования.

Но если переименовать, то Excel запустится по расширению - я об этом...
...
Рейтинг: 0 / 0
Долгая обработка текстовых данных в Экселе
    #36552089
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndrFAntonariyAndrFКстати, давно было, но вроде если эту xml-ку переименовать в xls и запустить, то Excel ее вполне нормально откроет...Прекрасно откроет и без переименования.

Но если переименовать, то Excel запустится по расширению - я об этом...Я об этом же. Виндовский шелл анализирует не только расширения, но и процессинговые инструкции xml-файлов, если находит <?mso-application progid="Excel.Sheet"?>, то соответственно его ассоциирует.
...
Рейтинг: 0 / 0
Долгая обработка текстовых данных в Экселе
    #36554097
motorway
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потестировал скорость. Если убрать раскраску ячеек, то время сокращается с 5 мин до 4 мин 46 сек. Если убрать присваивание значений ячейкам, то до 4 мин 30 сек. Видимо, разбор строки занимает большую часть по времени.
При этом, если сделать выход из процедуры довольно близко к ее началу, чтобы проверить, сколько занимает это по времени, то даже это делалось около 3 мин 40 сек.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Sub Parse(serverres)
Application.ScreenUpdating = False
Application.EnableEvents = False
If (Mid(serverres,  1 ,  3 ) = "!!!") Then MsgBox (Mid(serverres,  5 ))

If (Not Mid(serverres,  1 ,  3 ) = "!!!") Then

    result = Split(serverres, "~~~END~~~")
Exit Sub
...
Довольно странно, почему это так медленно даже это.
...
Рейтинг: 0 / 0
Долгая обработка текстовых данных в Экселе
    #36554172
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
motorwayВидимо, разбор строки занимает большую часть по времени.
.....
Довольно странно, почему это так медленно даже это.


Погодите-ка, я же вам давал код БЕЗ ворочанья больших массивов в памяти и вы даже вроде его тестировали.
...
Рейтинг: 0 / 0
Долгая обработка текстовых данных в Экселе
    #36554265
motorway
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

да, сейчас он есть, но это относится ко второй части кода. А первая вот:

Код: plaintext
1.
2.
3.
4.
If (Mid(serverres,  1 ,  3 ) = "!!!") Then MsgBox (Mid(serverres,  5 ))

If (Not Mid(serverres,  1 ,  3 ) = "!!!") Then
  
    result = Split(serverres, "~~~END~~~")

Или я неправильно что-то сделал? У меня же там в начале процедуры это еще есть
...
Рейтинг: 0 / 0
Долгая обработка текстовых данных в Экселе
    #36554276
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если я правильно понимаю, "~~~END~~~" у вас встречается только один раз
Нафига его командой Split обрабатывать, создавая еще один массив в памяти, совершенно бесполезный. Избавьтесь от этого.
...
Рейтинг: 0 / 0
Долгая обработка текстовых данных в Экселе
    #36554278
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
впрочем... это находится не внутри цикла, конечно может не иметь решающего значния...
Я вам предлагал еще на первой странице сделать замер времени, попробуйте, может на этот единичный Split и не так много времени уйдет...
...
Рейтинг: 0 / 0
Долгая обработка текстовых данных в Экселе
    #36554329
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
motorwayДовольно странно, почему это так медленно даже это.

Держите код работающий с тем файлом примера что вы прикладывали. Где-то секунда уходит на заполнение. Может создавать листы, если их несколько. Количество колонок - до Z (влом было предусматривать что их может быть больше, так как не в курсе нужно ли)...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
Option Explicit

Public Sub Main()
    Dim ea As Excel.Application, eb As Excel.Workbook, ex As Excel.Worksheet, er As Excel.Range
    Dim r As New ADODB.Recordset, rr As New ADODB.Recordset, rrr As New ADODB.Recordset, rc As ADODB.Recordset, fa As ADODB.FieldAttributeEnum
    Dim iHFile As Integer, sss As String, ms() As String, i As Long, m() As String, sЛист As String, k As Long
    
    iHFile = FreeFile
    Open App.Path & "\restext2.txt" For Binary As #iHFile
    sss = Space(LOF(iHFile))
    Get #iHFile, , sss
    Close #iHFile
    
    fa = adFldIsNullable + adFldMayBeNull + adFldUnknownUpdatable
    r.Fields.Append "Лист", adVarChar,  10 , adFldUnknownUpdatable
    r.Fields.Append "C", adChar,  1 , adFldUnknownUpdatable
    r.Fields.Append "R", adInteger, , adFldUnknownUpdatable
    r.Fields.Append "Value", adVarChar,  20 , fa
    r.Open
    
    rrr.Fields.Append "Лист", adVarChar,  10 , adFldUnknownUpdatable
    rrr.Fields.Append "N", adSmallInt, , adFldUnknownUpdatable
    rrr.Open
    rrr( 0 ).Properties!Optimize = True
    
    ms = Split(sss, "`")
    For i =  0  To UBound(ms)
        m = Split(ms(i), "|")
        If UBound(m) <>  2  Then
            Exit For
        End If
        
        r.AddNew
        r!Лист = m( 0 )
        r!C = Left$(m( 1 ),  1 )
        r!r = CLng(Mid$(m( 1 ),  2 ))
        r!Value = m( 2 )
        r.Update
    Next i
    
    r.Sort = "Лист, C, R"
    Set rc = r.Clone
    rc.Sort = "Лист, C Desc"
    
    ' Определим сколько всего листов
    Do Until r.EOF
        If sЛист <> r( 0 ) Then
            sЛист = r( 0 )
            
            ' Определим максимальную букву листа
            rc.Filter = "Лист='" & sЛист & "'"
            
            rrr.AddNew
            rrr( 0 ) = sЛист
            rrr( 1 ) = Asc(Left$(rc( 1 ),  1 )) - Asc("A") +  1 
            rrr.Update
        End If
        r.MoveNext
    Loop
    Set rc = Nothing
    
    ' Создадим выходной Recordset
    rrr.Sort = "N Desc"
    For i = Asc("A") To Asc("A") + rrr!n -  1 
        rr.Fields.Append Chr$(i), adVarChar,  20 , fa
    Next i
    rr.Fields.Append "Лист", adVarChar,  10 , adFldUnknownUpdatable
    rr.Fields.Append "RRR", adInteger, , fa
    rr.Fields.Append "KKK", adInteger, , adFldUnknownUpdatable
    rr.Open
    
    rrr.Sort = "Лист"
    Do Until rrr.EOF
        sЛист = rrr( 0 )
        r.Filter = "Лист='" & sЛист & "'"
        r.Sort = "R DESC"
        For i =  1  To r( 2 )
            rr.AddNew
            rr!Лист = sЛист
            rr!KKK = i
            rr.Update
        Next i
        rrr.MoveNext
    Loop
    r.Filter =  0 
    r.Sort = "Лист, R"

    ' Заполним выходной Recordset
    r.MoveFirst: sЛист = vbNullString
    Do Until r.EOF
        rr.Filter = "Лист='" & r( 0 ) & "' AND KKK=" & r( 2 )
        rr(CStr(r( 1 ))) = r( 3 )
        rr.Update
        r.MoveNext
    Loop
    
    rrr.MoveFirst
    rr.Filter =  0 
    rr.Sort = "Лист, KKK"
    
    Set ea = New Excel.Application
    Set eb = ea.Workbooks.Add
    For i = ea.Workbooks( 1 ).Worksheets.Count To  2  Step - 1 
        ea.Workbooks( 1 ).Worksheets(i).Delete
    Next i
    Set ex = ea.Workbooks( 1 ).Worksheets( 1 )
    Do Until rrr.EOF
        If rrr.AbsolutePosition >  1  Then
            Set ex = ea.Workbooks( 1 ).Worksheets.Add(, ex)
        End If
        ex.Name = rrr( 0 )
        
        Set r = CloneRecordset(rr, "Лист='" & rrr( 0 ) & "'", "KKK")
        
        Set er = ex.Cells( 1 ,  1 )
        er.CopyFromRecordset r, , rrr( 1 )
        ex.Cells.Columns.AutoFit
        rrr.MoveNext
    Loop
    ea.Workbooks( 1 ).Worksheets( 1 ).Select
    ea.Visible = True
End Sub

Public Function CloneRecordset(rs As ADODB.Recordset, Optional sFilter As String = vbNullString, _
        Optional sSort As String = vbNullString) As ADODB.Recordset

    Dim r As New ADODB.Recordset, rr As ADODB.Recordset, f As ADODB.Field
    Dim iType As ADODB.DataTypeEnum
    
    Set rr = rs.Clone
    rr.Filter = IIf(Len(sFilter), sFilter,  0 )
    If Len(sSort) Then rr.Sort = sSort
    For Each f In rr.Fields
        Select Case f.Type
            Case adNumeric
                iType = adDouble
            Case adChar
                iType = adVarWChar
            Case Else
                iType = f.Type
        End Select
        r.Fields.Append f.Name, iType, f.DefinedSize, adFldIsNullable
    Next
    r.Open
    If Not (rr.BOF And rr.EOF) Then
        rr.MoveFirst
        Do Until rr.EOF
            r.AddNew
            For Each f In rr.Fields
                If Not IsNull(f) Then r.Fields(f.Name) = f
            Next f
            r.Update
            rr.MoveNext
        Loop
    End If
    If r.RecordCount Then r.MoveFirst
    Set CloneRecordset = r
End Function
...
Рейтинг: 0 / 0
25 сообщений из 172, страница 3 из 7
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Долгая обработка текстовых данных в Экселе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]