Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Здравствуйте. Не работает макрос на портале ver 2017 sr7, локально на сервере или рабочем ПК работает.
В диспетчере задач видно как открылся процесс Excel (на сервере установлен 2016 x64)
в лог записалась строчка о Старт дата время и все, процесс Excel в диспетчере висит и ничего не происходит.
Как понять, чего не хватает?
sub Export
dim fso, MyFile, strFile, strText
set obj = ActiveDocument.GetSheetObject("CH05")
set vMonths = ActiveDocument.Fields("Квартал").GetPossibleValues
vPath = ActiveDocument.Variables("vReport").GetContent.String
' Создание каталога, при его отсутствии
Set fileSystemObject = CreateObject("Scripting.FileSystemObject")
If Not fileSystemObject.FolderExists(vPath) Then
fileSystemObject.CreateFolder(vPath)
End If
' Запись в лог, старта
strFile=vPath & "\log_macro.txt"
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FileExists(strFile) Then
Set MyFile = fso.OpenTextFile (strFile, 8, True)
Else
Set MyFile = fso.CreateTextFile(strFile)
MyFile.WriteLine("""мой_файл""")
End If
strText= "Старт " & """" & Now() & ""
MyFile.WriteLine(strText)
set objExcel = CreateObject("Excel.Application")
objExcel.Visible = false
objExcel.DisplayAlerts = false
set objWrkBk = objExcel.Workbooks.Add
i = objWrkBk.Worksheets.Count
Do Until i = 1
objWrkBk.Worksheets(i).Delete
i = i - 1
Loop
For i = 0 to vMonths.Count -1
objWrkBk.Sheets.Add(, objWrkBk.Sheets(objWrkBk.Sheets.Count)).Name = vMonths(i).Text
ActiveDocument.Fields("Квартал").Select vMonths(i).Text
Set ASheet = objExcel.Sheets(vMonths(i).Text)
ASheet.Range("A1").Select
obj.CopyTableToClipboard true
ASheet.Paste
strText= "кв " & vMonths(i).Text & " " & """" & Now() & ""
MyFile.WriteLine(strText)
Next
For i = 0 to vMonths.Count -2
ActiveDocument.Fields("Квартал").ToggleSelect vMonths(i).Text
Next
objWrkBk.Sheets(1).Delete
ASheet.SaveAs vPath & "\мой_файл.xlsx"
objWrkBk.Close
objExcel.Quit
strText= "Окончание " & """" & Now() & ""
MyFile.WriteLine(strText)
MyFile.Close
end sub
Добрый день, Иван. Сталкивался с подобной проблемой и если не ошибаюсь, дело в Session 0 Isolation и во временном каталоге Офиса. Точно не помню, то ли менял на нем права, то ли просто создавал, если не найдешь решение могу вечером глянуть или погугли этот вопрос.
Пока не нашел, помогите пожалуйста
Попробуй создать папку
C:\Windows\SysWOW64\config\systemprofile\Desktop
и дай на всякий случай всем права на чтение и запись.
Где то читал про это, там еще про права на DCOM писалось и рекомендовалось переустановить офис.
Ваше предложение попробовал, не помогло
Понятно, может лог писать из макроса и отследить событие на котором повисает, там проще будет докопаться до истины.
Я его пишу в макросе текст
strText= "Старт " & """" & Now() & ""
MyFile.WriteLine(strText)
В логе Старт и дата появляются, дальше в диспетчере задач на сервере появляется Excel на этом все.
Отступление.
1. Можно ли запускать макрос на портале без плагина?
2. Поставил плагин, макрос на портале работает, но выполняется на персональном ПК, это плохо на персоналке нет столько свободного ОЗУ, чтобы выгрузить в Excel. Это нормально, что с плагином выполнение происходит локально?
Мало того валится IE32 c ошибкой на виртуальную память, да и плагин x32
Привет. Прошу прощения, запись в лог и не заметил. По идее с плагином локально и должно работать. Но не пойму куда именно хочешь выгружать. Если на сервер, то ServerSideExportEx для этих целей.
Что за зверь, вроде в сжатый xlsx не умеет?
ServerSideExportEx
' 0=HTML, 1=Text, 2=Bitmap, 3=XML, 4=QVD, 5=BIFF
' BIFF is the old Excel format that has file extension XLS
Нужно данные в несколько миллионов строк выгрузить в Excel, чтобы влезло на лист бьем на квартально. Т.к. ресурсы по памяти на пользовательских ПК ограниченные (процесс Excel при экспорте переваливает за 2Гб), нужно чтобы сервер сформировал у себя, по нажатию на кнопку макроса и положил на свой расшареный диск.
На сколько я понял этот вопрос решен с QlikView 12.20 (November 2017) and up
Тут вроде все описано, попробуй. Честно говоря у меня не было необходимости выгружать такой объем в excel.