Здравствуйте, Уважаемый Parazit!
У нас периодически возникает проблема с выгрузкой полей с длиной более 255 символов в ZWWW для Excel.
Как известно, в ZWWW существует такое ограничение, связанное с работой функции Replace в Excel - тексты длиной более 255 символов не выводятся.
Для того, чтобы решить данную проблему, нам пришлось доработать макрос формирования в файле ZWWW_MACROS (см. код ниже).
Рассмотрите, пожалуйста, возможность внесения данной доработки в новую версию или любое другое решение данной проблемы.
У нас версия 3.03, в ней проблема еще не решена.
Все изменения относятся к процедуре
Public Sub ZWWW_FillVariables(FileData As String, p_BookTempl)Для понимания, где были изменения, брал несколько строк до и несколько строк после изменяемого куска.
Изменяемый кусок помечал специальными комментариями.
Участок кода 1:
Code:
...
StartTime As Double, _
CurrentTime As Double
' WITHOUT_OLE As String, _
' >> Начало добавления
Dim searchRan As Range
Dim firstAddress As String
' << Конец добавления
StartTime = Time * 100000
CurrentTime = StartTime * 100000
...
Участок кода 2:
Code:
...
Else
If Ar(3) = "S" Then 'or InStr(1, Ar(5), Chr(9)) = 0 Then
Ln = Ar(5)
' >> Начало добавления
If Len(Ln) > 255 Then
Set searchRan = r.Find(What:=Ar(2), LookAt:=xlPart)
If Not searchRan Is Nothing Then
firstAddress = searchRan.Address
Do
searchRan.Value = Ln
Set searchRan = r.FindNext(searchRan)
Loop While Not searchRan Is Nothing And searchRan.Address <> firstAddress
End If
Else
r.Replace Ar(2), Ln, xlPart, xlByRows, False
End If
'r.Replace Ar(2), Ln, xlPart, xlByRows, False
' << Конец добавления
ElseIf Ar(1) <> "*" And Ar(3) = "T" Then
Set Ofs = r.Find(Ar(2))
Set QTable = r.Worksheet.QueryTables.Add("TEXT;" + Application.ActiveWorkbook.Path + Application.PathSeparator + Ar(5), Ofs)
QTable.AdjustColumnWidth = False
...
Если будете менять, то нужно также доработать ABAP-код (для не оптимизированного режима).
Мы пока доработали только макрос, т.к. в 99% случаев используем оптимизированный режим.
Заранее спасибо,