1 (изменено: lyfffi, 2012-09-18 16:33:19)

Тема: Проблемы с CopyTableToClipboard

Всем привет!!!!!!!

Работаю в приложение QlikView.
Задача: Дополнить Excel таблицей из QV. Скрипт выполняется, НО! При вставке таблицы в Excel, во всех ячейках удаляются лишние пробелы! А это для нас очень и очень плохо, т.к. все должно быть идентично оригиналу

Например:

Копирую

"Привет      друг" с шестью пробелами

Вставляю в Excel и получаю

"Привет друг"   с одним пробелом м/ду словами.

Вот непосредственно скрипт:

 Sub export

'********* Переменные ***********************************************************************
Dim FSO,objFSO,FileName
iRow = 2

Set FSO = CreateObject("Scripting.FileSystemObject")

'********* Обращаемся к переменной хранящей значения директории к файлу *********************
Set d = ActiveDocument.Variables("Path")

'********* Присвоение значения директории переменной MyDirName ******************************
MyDirName = d.GetRawContent

'********* Обращаемся к переменной хранящей значения имени файла ****************************
Set n = ActiveDocument.Variables("Name")

'********* Присвоение значения директории переменной MyDirName ******************************
Name = n.GetRawContent

'********* Полный путь: директория + Имя файла Excel ****************************************
FileName = MyDirName&"\"&Name&".xlsx"

           
'********** Создаем объект Excel ****************************************************
Set xlApp = CreateObject("Excel.Application")
        
'********** Устанавливаем видимость объекта *****************************************
xlApp.Visible = true
        
'*********** Назначаем переменные для открытия книги, листа, объекта ****************
Set xlWB = xlApp.Workbooks.Open(FileName)
Set xlSheet = xlWB.Worksheets(1)
Set obj = ActiveDocument.GetSheetObject(ChartName) 
        
'*********** Активируем лист ********************************************************
xlSheet.Activate
    
'*********** Ищем последнюю заполненую ячейку и переходим на пустую *****************
While Not (Isempty(xlSheet.Cells(iRow, 1)))
iRow = iRow+1
Wend
        
'*********** Обращаемся к таблице из приложения и копируем её в буфер ***************
Set txt1 = ActiveDocument.GetSheetObject("CH27")
txt1.CopyTableToClipboard True
        
'*********** Выбираем пустую ячейку и вставляем из буфера таблицу *******************
xlSheet.Cells(iRow,1).Select
xlSheet.Paste
    
'*********** Удаляем из вставленой таблицы заголовки ********************************
For i=iRow to iRow+1
    If (xlSheet.Range("A" & i).Value = "Номенклатура ") Then
        xlSheet.Range("A" & i).EntireRow.Delete
    End If
Next

'*********** Сохраняем, закрываем книгу, закрываем объект Excel *********************
xlWB.Save
xlWB.Close
xlApp.Quit
        
    
' Конец
End sub

Очень расчитываю на вашу помощь!!!

2

Re: Проблемы с CopyTableToClipboard

Мне кажется, что проблема в xlSheet.Paste...
Может попытаться в каждую ячейку в цикле ввести значения....

3

Re: Проблемы с CopyTableToClipboard

Вопрос все ещё актуален.

С помощью цикла тот же результат(