<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Export Macro not working in QlikView</title>
    <link>https://community.qlik.com/t5/QlikView/Export-Macro-not-working/m-p/953507#M972624</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Samuel,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;this is the macro code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;sub exportToExcel_Variant1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// Array for export definitions&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Dim aryExport(0,3)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;aryExport(0,0) = "CH01"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;aryExport(0,1) = "Sales per Region a. Year" &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;aryExport(0,2) = "A1"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;aryExport(0,3) = "data"&lt;/P&gt;&lt;P&gt;Dim objExcelWorkbook 'as Excel.Workbook&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Set objExcelWorkbook = copyObjectsToExcelSheet(ActiveDocument, aryExport)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// Now either just leave Excel open or do some other stuff here&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// like saving the excel, some formatting stuff, ...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;end sub&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&lt;/P&gt;&lt;P&gt;'// YOU DO NOT NEED TO CHANGE THE CODE BELOW !!!!!!!!!!!!!!!!!!!!!!!&lt;/P&gt;&lt;P&gt;'// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// ****************************************************************&lt;/P&gt;&lt;P&gt;'// copyObjectsToExcel&lt;/P&gt;&lt;P&gt;'// ~~&lt;/P&gt;&lt;P&gt;'// Parameters:&lt;/P&gt;&lt;P&gt;'//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; qvDoc - Reference to the QlikView document (normally just use&lt;/P&gt;&lt;P&gt;'//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "ActiveDocument", but you can also use copyObjectsToExcel&lt;/P&gt;&lt;P&gt;'//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outside of QlikView ...&lt;/P&gt;&lt;P&gt;'//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; aryExportDefinition - array of settings&lt;/P&gt;&lt;P&gt;'// ~~&lt;/P&gt;&lt;P&gt;'// Version 1.02&lt;/P&gt;&lt;P&gt;'// ~~&lt;/P&gt;&lt;P&gt;'// The aryExportDefinition is used to pass the following properties to &lt;/P&gt;&lt;P&gt;'// copyObjectsToExcelSheet:&lt;/P&gt;&lt;P&gt;'//&lt;/P&gt;&lt;P&gt;'//&amp;nbsp;&amp;nbsp; Index&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Description&lt;/P&gt;&lt;P&gt;'// ------------------------&lt;/P&gt;&lt;P&gt;'//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Id of the QlikView object to copy from&lt;/P&gt;&lt;P&gt;'//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Name of the sheet (in Excel) where the object should be copied to&lt;/P&gt;&lt;P&gt;'//&lt;/P&gt;&lt;P&gt;'//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (If a sheet with the same name already exists no new &lt;/P&gt;&lt;P&gt;'//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sheet will be created, instead the existing sheet will &lt;/P&gt;&lt;P&gt;'//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; be used for pasting the object)&lt;/P&gt;&lt;P&gt;'//&lt;/P&gt;&lt;P&gt;'//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Note: the sheetName can be max 31 characters long&lt;/P&gt;&lt;P&gt;'// &lt;/P&gt;&lt;P&gt;'//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Range in Excel where the object should be pasted to&lt;/P&gt;&lt;P&gt;'//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PasteMode ["data", "image"]&lt;/P&gt;&lt;P&gt;'//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Defines if the objects underlaying data should be &lt;/P&gt;&lt;P&gt;'//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pasted ("data") or the the image representing the object&lt;/P&gt;&lt;P&gt;'//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; should be used&lt;/P&gt;&lt;P&gt;'// ****************************************************************&lt;/P&gt;&lt;P&gt;Private Function copyObjectsToExcelSheet(qvDoc, aryExportDefinition) 'as Excel.Workbook&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Dim i 'as Integer&lt;/P&gt;&lt;P&gt;Dim objExcelApp 'as Excel.Application&lt;/P&gt;&lt;P&gt;Dim objExcelDoc 'as Excel.Workbook&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Set objExcelApp = CreateObject("Excel.Application")&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;objExcelApp.Visible = true 'false if you want to hide Excel&lt;/P&gt;&lt;P&gt;objExcelApp.DisplayAlerts = false&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;Set objExcelDoc = objExcelApp.Workbooks.Add&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Dim strSourceObject&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Dim qvObjectId 'as String &lt;/P&gt;&lt;P&gt;Dim sheetName&lt;/P&gt;&lt;P&gt;Dim sheetRange&lt;/P&gt;&lt;P&gt;Dim pasteMode&lt;/P&gt;&lt;P&gt;Dim objSource&lt;/P&gt;&lt;P&gt;Dim objCurrentSheet&lt;/P&gt;&lt;P&gt;Dim objExcelSheet&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;for i = 0 to UBOUND(aryExportDefinition)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '// Get the properties of the exportDefinition array&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; qvObjectId = aryExportDefinition(i,0)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sheetName = aryExportDefinition(i,1)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sheetRange = aryExportDefinition(i,2)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pasteMode = aryExportDefinition(i,3)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set objExcelSheet = Excel_GetSheetByName(objExcelDoc, sheetName)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (objExcelSheet is nothing) then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set objExcelSheet = Excel_AddSheet(objExcelApp, sheetName)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (objExcelSheet is nothing) then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msgbox("No sheet could be created, this should not occur!!!")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end if&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end if&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; objExcelSheet.Select&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set objSource = qvDoc.GetSheetObject(qvObjectId)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Call objSource.GetSheet().Activate()&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; objSource.Maximize&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; qvDoc.GetApplication.WaitForIdle&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (not objSource is nothing) then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (pasteMode = "image") then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Call objSource.CopyBitmapToClipboard()&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Call objSource.CopyTableToClipboard(true) '// default &amp;amp; fallback&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end if&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set objCurrentSheet = objExcelDoc.Sheets(sheetName)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objExcelDoc.Sheets(sheetName).Range(sheetRange).Select&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objExcelDoc.Sheets(sheetName).Paste&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (pasteMode &amp;lt;&amp;gt; "image") then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; With objExcelApp.Selection&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .WrapText = True&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .ShrinkToFit = False&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End With&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end if&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objCurrentSheet.Range("A1").Select&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end if&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;next&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Call Excel_DeleteBlankSheets(objExcelDoc)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// Finally select the first sheet&lt;/P&gt;&lt;P&gt;objExcelDoc.Sheets(1).Select&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// Return value&lt;/P&gt;&lt;P&gt;Set copyObjectsToExcelSheet = objExcelDoc&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;end function&lt;/P&gt;&lt;P&gt;'// ________________________________________________________________&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// ****************************************************************&lt;/P&gt;&lt;P&gt;'// Internal function for getting the Excel sheet by sheetName&lt;/P&gt;&lt;P&gt;'// ****************************************************************&lt;/P&gt;&lt;P&gt;Private Function Excel_GetSheetByName(ByRef objExcelDoc, sheetName) 'as Excel.Sheet&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For Each ws In objExcelDoc.Worksheets&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If (trim(ws.Name) = Excel_GetSafeSheetName(sheetName)) then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set Excel_GetSheetByName = ws&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit function&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/P&gt;&lt;P&gt;Next&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// default return value&lt;/P&gt;&lt;P&gt;Set Excel_GetSheetByName = nothing&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;End Function&lt;/P&gt;&lt;P&gt;'// ________________________________________________________________&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Private Function Excel_GetSafeSheetName(sheetName)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '// can be max 31 characters long&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; retVal = trim(left(sheetName, 31))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Excel_GetSafeSheetName = retVal&lt;/P&gt;&lt;P&gt;End Function&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// ****************************************************************&lt;/P&gt;&lt;P&gt;'// Internal function for adding a new sheet&lt;/P&gt;&lt;P&gt;'// ****************************************************************&lt;/P&gt;&lt;P&gt;Private Function Excel_AddSheet(objExcelApplication, sheetName) ' as Excel.Sheet&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '// add a sheet to the last position&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; objExcelApplication.Sheets.Add , objExcelApplication.Sheets(objExcelApplication.Sheets.Count)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim objNewSheet&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set objNewSheet = objExcelApplication.Sheets(objExcelApplication.Sheets.Count)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; objNewSheet.Name = left(sheetName,31)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '// return the newly created sheet&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set Excel_AddSheet = objNewSheet&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;End function&lt;/P&gt;&lt;P&gt;'// ________________________________________________________________&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// ****************************************************************&lt;/P&gt;&lt;P&gt;'// Delete all empty sheets&lt;/P&gt;&lt;P&gt;'// ****************************************************************&lt;/P&gt;&lt;P&gt;Private Sub Excel_DeleteBlankSheets(ByRef objExcelDoc) &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For Each ws In objExcelDoc.Worksheets&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If (not HasOtherObjects(ws)) then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If objExcelDoc.Application.WorksheetFunction.CountA(ws.Cells) = 0 Then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; On Error Resume Next&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Call ws.Delete()&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/P&gt;&lt;P&gt;Next &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;End Sub &lt;/P&gt;&lt;P&gt;'// ________________________________________________________________&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// ****************************************************************&lt;/P&gt;&lt;P&gt;'// Helper function to determine if there are other objects placed&lt;/P&gt;&lt;P&gt;'// on the sheet ...&lt;/P&gt;&lt;P&gt;'// ****************************************************************&lt;/P&gt;&lt;P&gt;Public Function HasOtherObjects(ByRef objSheet) 'As Boolean &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim c&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If (objSheet.ChartObjects.Count &amp;gt; 0) Then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HasOtherObjects = true&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit function&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If (objSheet.Pictures.Count &amp;gt; 0) Then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HasOtherObjects = true&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit function&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If (objSheet.Shapes.Count &amp;gt; 0) Then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HasOtherObjects = true&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit function&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; HasOtherObjects = false&lt;/P&gt;&lt;P&gt;End Function &lt;/P&gt;&lt;P&gt;'//__________________________________________________________________&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 15 Sep 2015 13:45:04 GMT</pubDate>
    <dc:creator />
    <dc:date>2015-09-15T13:45:04Z</dc:date>
    <item>
      <title>Export Macro not working</title>
      <link>https://community.qlik.com/t5/QlikView/Export-Macro-not-working/m-p/953500#M972616</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ive pinched the below from &lt;A href="http://www.qlikblog.at/971/qliktip-32-exporting-multiple-objects-single-excel-document/" title="http://www.qlikblog.at/971/qliktip-32-exporting-multiple-objects-single-excel-document/"&gt;QlikTip #32: Exporting multiple QV objects to a single Excel document&lt;/A&gt; but it doesn't seem to do anything at all, obviously im going wrong somewhere but I cant identify the problem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ive tried using the CH number and setting it as obj to see if that changes anything but no joy.&lt;/P&gt;&lt;P&gt;thanks for any help guys.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; sub test()&lt;BR /&gt; Dim aryExport(0,3)&lt;BR /&gt; &lt;BR /&gt; set obj = ActiveDocument.GetSheetObject("CH127")&lt;BR /&gt; &lt;BR /&gt; aryExport(0,0) = "CH127"&lt;BR /&gt; aryExport(0,1) = "Sales per Region"&lt;BR /&gt; aryExport(0,2) = "A1"&lt;BR /&gt; aryExport(0,3) = "data"&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; Dim objExcelWorkbook 'as Excel.Workbook&lt;BR /&gt; Set objExcelWorkbook = copyObjectsToExcelSheet(ActiveDocument, aryExport)&lt;BR /&gt; &lt;BR /&gt; end sub &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Sep 2015 11:08:01 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Export-Macro-not-working/m-p/953500#M972616</guid>
      <dc:creator>samuel_brierley</dc:creator>
      <dc:date>2015-09-15T11:08:01Z</dc:date>
    </item>
    <item>
      <title>Re: Export Macro not working</title>
      <link>https://community.qlik.com/t5/QlikView/Export-Macro-not-working/m-p/953501#M972617</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;have a look at this&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Sep 2015 11:09:26 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Export-Macro-not-working/m-p/953501#M972617</guid>
      <dc:creator>gautik92</dc:creator>
      <dc:date>2015-09-15T11:09:26Z</dc:date>
    </item>
    <item>
      <title>Re: Export Macro not working</title>
      <link>https://community.qlik.com/t5/QlikView/Export-Macro-not-working/m-p/953502#M972618</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm a PE user unfortunately &lt;IMG src="https://community.qlik.com/legacyfs/online/emoticons/sad.png" /&gt; getting closer to getting IT to get me a license.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;sorry&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Sep 2015 11:10:40 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Export-Macro-not-working/m-p/953502#M972618</guid>
      <dc:creator>samuel_brierley</dc:creator>
      <dc:date>2015-09-15T11:10:40Z</dc:date>
    </item>
    <item>
      <title>Re: Export Macro not working</title>
      <link>https://community.qlik.com/t5/QlikView/Export-Macro-not-working/m-p/953503#M972619</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;have a look at this macro&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// ****************************************************************&lt;/P&gt;&lt;P&gt;'// Simple Export of just one object&lt;/P&gt;&lt;P&gt;'// ****************************************************************&lt;/P&gt;&lt;P&gt;sub exportToExcel_Variant1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// Array for export definitions&lt;/P&gt;&lt;P&gt;Dim aryExport(0,3)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;aryExport(0,0) = "objSalesPerYearAndRegion"&lt;/P&gt;&lt;P&gt;aryExport(0,1) = "Sales per Region a. Year" &lt;/P&gt;&lt;P&gt;aryExport(0,2) = "A1"&lt;/P&gt;&lt;P&gt;aryExport(0,3) = "data"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Dim objExcelWorkbook 'as Excel.Workbook&lt;/P&gt;&lt;P&gt;Set objExcelWorkbook = copyObjectsToExcelSheet(ActiveDocument, aryExport)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// Now either just leave Excel open or do some other stuff here&lt;/P&gt;&lt;P&gt;'// like saving the excel, some formatting stuff, ...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;end sub&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// ****************************************************************&lt;/P&gt;&lt;P&gt;'// More enhanced export of three objects to three different sheets&lt;/P&gt;&lt;P&gt;'// ****************************************************************&lt;/P&gt;&lt;P&gt;sub exportToExcel_Variant2&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// Array for export definitions&lt;/P&gt;&lt;P&gt;Dim aryExport(2,3)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;aryExport(0,0) = "objSalesPerRegion"&lt;/P&gt;&lt;P&gt;aryExport(0,1) = "Sales per Region"&lt;/P&gt;&lt;P&gt;aryExport(0,2) = "A1"&lt;/P&gt;&lt;P&gt;aryExport(0,3) = "data"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;aryExport(1,0) = "objTopCustomers"&lt;/P&gt;&lt;P&gt;aryExport(1,1) = "Top Customers" &lt;/P&gt;&lt;P&gt;aryExport(1,2) = "A1"&lt;/P&gt;&lt;P&gt;aryExport(1,3) = "data"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;aryExport(2,0) = "objSalesPerYearAndRegion"&lt;/P&gt;&lt;P&gt;aryExport(2,1) = "Sales per Region a. Year" &lt;/P&gt;&lt;P&gt;aryExport(2,2) = "A1"&lt;/P&gt;&lt;P&gt;aryExport(2,3) = "data"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Dim objExcelWorkbook 'as Excel.Workbook&lt;/P&gt;&lt;P&gt;Set objExcelWorkbook = copyObjectsToExcelSheet(ActiveDocument, aryExport)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// Now either just leave Excel open or do some other stuff here&lt;/P&gt;&lt;P&gt;'// like saving the excel, some formatting stuff, ...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;end sub&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// ****************************************************************&lt;/P&gt;&lt;P&gt;'// Export of multiple objects in different formats (data &amp;amp; image)&lt;/P&gt;&lt;P&gt;'// In one case (sheet "Sales Overview") two objects are placed on&lt;/P&gt;&lt;P&gt;'// one sheet.&lt;/P&gt;&lt;P&gt;'// ****************************************************************&lt;/P&gt;&lt;P&gt;sub exportToExcel_Variant3&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Dim aryExport(4,3)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;aryExport(0,0) = "objSalesPerRegion"&lt;/P&gt;&lt;P&gt;aryExport(0,1) = "Sales Overview"&lt;/P&gt;&lt;P&gt;aryExport(0,2) = "A1"&lt;/P&gt;&lt;P&gt;aryExport(0,3) = "image"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;aryExport(1,0) = "objTopCustomers"&lt;/P&gt;&lt;P&gt;aryExport(1,1) = "Sales Overview" &lt;/P&gt;&lt;P&gt;aryExport(1,2) = "H1"&lt;/P&gt;&lt;P&gt;aryExport(1,3) = "image"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;aryExport(2,0) = "objSalesPerYearAndRegion"&lt;/P&gt;&lt;P&gt;aryExport(2,1) = "Sales Overview" &lt;/P&gt;&lt;P&gt;aryExport(2,2) = "A14"&lt;/P&gt;&lt;P&gt;aryExport(2,3) = "data"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;aryExport(3,0) = "objTopCustomers"&lt;/P&gt;&lt;P&gt;aryExport(3,1) = "Top Customers" &lt;/P&gt;&lt;P&gt;aryExport(3,2) = "A1"&lt;/P&gt;&lt;P&gt;aryExport(3,3) = "image"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;aryExport(4,0) = "objTopCustomers"&lt;/P&gt;&lt;P&gt;aryExport(4,1) = "Top Customers" &lt;/P&gt;&lt;P&gt;aryExport(4,2) = "A14"&lt;/P&gt;&lt;P&gt;aryExport(4,3) = "data"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Dim objExcelWorkbook 'as Excel.Workbook&lt;/P&gt;&lt;P&gt;Set objExcelWorkbook = copyObjectsToExcelSheet(ActiveDocument, aryExport)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// Now either just leave Excel open or do some other stuff here&lt;/P&gt;&lt;P&gt;'// like saving the excel, some formatting stuff, ...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;end sub&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&lt;/P&gt;&lt;P&gt;'// YOU DO NOT NEED TO CHANGE THE CODE BELOW !!!!!!!!!!!!!!!!!!!!!!!&lt;/P&gt;&lt;P&gt;'// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// ****************************************************************&lt;/P&gt;&lt;P&gt;'// copyObjectsToExcel&lt;/P&gt;&lt;P&gt;'// ~~&lt;/P&gt;&lt;P&gt;'// Parameters:&lt;/P&gt;&lt;P&gt;'// qvDoc - Reference to the QlikView document (normally just use&lt;/P&gt;&lt;P&gt;'// "ActiveDocument", but you can also use copyObjectsToExcel&lt;/P&gt;&lt;P&gt;'// outside of QlikView ...&lt;/P&gt;&lt;P&gt;'// aryExportDefinition - array of settings&lt;/P&gt;&lt;P&gt;'// ~~&lt;/P&gt;&lt;P&gt;'// Version 1.02&lt;/P&gt;&lt;P&gt;'// ~~&lt;/P&gt;&lt;P&gt;'// The aryExportDefinition is used to pass the following properties to &lt;/P&gt;&lt;P&gt;'// copyObjectsToExcelSheet:&lt;/P&gt;&lt;P&gt;'//&lt;/P&gt;&lt;P&gt;'//&amp;nbsp;&amp;nbsp; Index Description&lt;/P&gt;&lt;P&gt;'// ------------------------&lt;/P&gt;&lt;P&gt;'// 0 - Id of the QlikView object to copy from&lt;/P&gt;&lt;P&gt;'// 1 - Name of the sheet (in Excel) where the object should be copied to&lt;/P&gt;&lt;P&gt;'//&lt;/P&gt;&lt;P&gt;'// (If a sheet with the same name already exists no new &lt;/P&gt;&lt;P&gt;'// sheet will be created, instead the existing sheet will &lt;/P&gt;&lt;P&gt;'// be used for pasting the object)&lt;/P&gt;&lt;P&gt;'//&lt;/P&gt;&lt;P&gt;'// Note: the sheetName can be max 31 characters long&lt;/P&gt;&lt;P&gt;'// &lt;/P&gt;&lt;P&gt;'// 2 - Range in Excel where the object should be pasted to&lt;/P&gt;&lt;P&gt;'// 3 - PasteMode ["data", "image"]&lt;/P&gt;&lt;P&gt;'// Defines if the objects underlaying data should be &lt;/P&gt;&lt;P&gt;'// pasted ("data") or the the image representing the object&lt;/P&gt;&lt;P&gt;'// should be used&lt;/P&gt;&lt;P&gt;'// ****************************************************************&lt;/P&gt;&lt;P&gt;Private Function copyObjectsToExcelSheet(qvDoc, aryExportDefinition) 'as Excel.Workbook&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Dim i 'as Integer&lt;/P&gt;&lt;P&gt;Dim objExcelApp 'as Excel.Application&lt;/P&gt;&lt;P&gt;Dim objExcelDoc 'as Excel.Workbook&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Set objExcelApp = CreateObject("Excel.Application")&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;objExcelApp.Visible = true 'false if you want to hide Excel&lt;/P&gt;&lt;P&gt;objExcelApp.DisplayAlerts = false&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;Set objExcelDoc = objExcelApp.Workbooks.Add&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Dim strSourceObject&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Dim qvObjectId 'as String &lt;/P&gt;&lt;P&gt;Dim sheetName&lt;/P&gt;&lt;P&gt;Dim sheetRange&lt;/P&gt;&lt;P&gt;Dim pasteMode&lt;/P&gt;&lt;P&gt;Dim objSource&lt;/P&gt;&lt;P&gt;Dim objCurrentSheet&lt;/P&gt;&lt;P&gt;Dim objExcelSheet&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;for i = 0 to UBOUND(aryExportDefinition)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; '// Get the properties of the exportDefinition array&lt;/P&gt;&lt;P&gt;&amp;nbsp; qvObjectId = aryExportDefinition(i,0)&lt;/P&gt;&lt;P&gt;&amp;nbsp; sheetName = aryExportDefinition(i,1)&lt;/P&gt;&lt;P&gt;&amp;nbsp; sheetRange = aryExportDefinition(i,2)&lt;/P&gt;&lt;P&gt;&amp;nbsp; pasteMode = aryExportDefinition(i,3)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; Set objExcelSheet = Excel_GetSheetByName(objExcelDoc, sheetName)&lt;/P&gt;&lt;P&gt;&amp;nbsp; if (objExcelSheet is nothing) then&lt;/P&gt;&lt;P&gt;&amp;nbsp; Set objExcelSheet = Excel_AddSheet(objExcelApp, sheetName)&lt;/P&gt;&lt;P&gt;&amp;nbsp; if (objExcelSheet is nothing) then&lt;/P&gt;&lt;P&gt;&amp;nbsp; msgbox("No sheet could be created, this should not occur!!!")&lt;/P&gt;&lt;P&gt;&amp;nbsp; end if&lt;/P&gt;&lt;P&gt;&amp;nbsp; end if&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; objExcelSheet.Select&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set objSource = qvDoc.GetSheetObject(qvObjectId)&lt;/P&gt;&lt;P&gt;&amp;nbsp; Call objSource.GetSheet().Activate()&lt;/P&gt;&lt;P&gt;&amp;nbsp; objSource.Maximize&lt;/P&gt;&lt;P&gt;&amp;nbsp; qvDoc.GetApplication.WaitForIdle&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if (not objSource is nothing) then&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if (pasteMode = "image") then&lt;/P&gt;&lt;P&gt;&amp;nbsp; Call objSource.CopyBitmapToClipboard()&lt;/P&gt;&lt;P&gt;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp; Call objSource.CopyTableToClipboard(true) '// default &amp;amp; fallback&lt;/P&gt;&lt;P&gt;&amp;nbsp; end if&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; Set objCurrentSheet = objExcelDoc.Sheets(sheetName)&lt;/P&gt;&lt;P&gt;&amp;nbsp; objExcelDoc.Sheets(sheetName).Range(sheetRange).Select&lt;/P&gt;&lt;P&gt;&amp;nbsp; objExcelDoc.Sheets(sheetName).Paste&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if (pasteMode &amp;lt;&amp;gt; "image") then&lt;/P&gt;&lt;P&gt;&amp;nbsp; With objExcelApp.Selection&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .WrapText = True&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .ShrinkToFit = False&lt;/P&gt;&lt;P&gt;&amp;nbsp; End With&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; end if&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; objCurrentSheet.Range("A1").Select&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; end if&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;next&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Call Excel_DeleteBlankSheets(objExcelDoc)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// Finally select the first sheet&lt;/P&gt;&lt;P&gt;objExcelDoc.Sheets(1).Select&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// Return value&lt;/P&gt;&lt;P&gt;Set copyObjectsToExcelSheet = objExcelDoc&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;end function&lt;/P&gt;&lt;P&gt;'// ________________________________________________________________&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// ****************************************************************&lt;/P&gt;&lt;P&gt;'// Internal function for getting the Excel sheet by sheetName&lt;/P&gt;&lt;P&gt;'// ****************************************************************&lt;/P&gt;&lt;P&gt;Private Function Excel_GetSheetByName(ByRef objExcelDoc, sheetName) 'as Excel.Sheet&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For Each ws In objExcelDoc.Worksheets&lt;/P&gt;&lt;P&gt;&amp;nbsp; If (trim(ws.Name) = Excel_GetSafeSheetName(sheetName)) then&lt;/P&gt;&lt;P&gt;&amp;nbsp; Set Excel_GetSheetByName = ws&lt;/P&gt;&lt;P&gt;&amp;nbsp; exit function&lt;/P&gt;&lt;P&gt;&amp;nbsp; End If&lt;/P&gt;&lt;P&gt;Next&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// default return value&lt;/P&gt;&lt;P&gt;Set Excel_GetSheetByName = nothing&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;End Function&lt;/P&gt;&lt;P&gt;'// ________________________________________________________________&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Private Function Excel_GetSafeSheetName(sheetName)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; '// can be max 31 characters long&lt;/P&gt;&lt;P&gt;&amp;nbsp; retVal = trim(left(sheetName, 31))&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; Excel_GetSafeSheetName = retVal&lt;/P&gt;&lt;P&gt;End Function&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// ****************************************************************&lt;/P&gt;&lt;P&gt;'// Internal function for adding a new sheet&lt;/P&gt;&lt;P&gt;'// ****************************************************************&lt;/P&gt;&lt;P&gt;Private Function Excel_AddSheet(objExcelApplication, sheetName) ' as Excel.Sheet&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; '// add a sheet to the last position&lt;/P&gt;&lt;P&gt;&amp;nbsp; objExcelApplication.Sheets.Add , objExcelApplication.Sheets(objExcelApplication.Sheets.Count)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; Dim objNewSheet&lt;/P&gt;&lt;P&gt;&amp;nbsp; Set objNewSheet = objExcelApplication.Sheets(objExcelApplication.Sheets.Count)&lt;/P&gt;&lt;P&gt;&amp;nbsp; objNewSheet.Name = left(sheetName,31)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; '// return the newly created sheet&lt;/P&gt;&lt;P&gt;&amp;nbsp; Set Excel_AddSheet = objNewSheet&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;End function&lt;/P&gt;&lt;P&gt;'// ________________________________________________________________&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// ****************************************************************&lt;/P&gt;&lt;P&gt;'// Delete all empty sheets&lt;/P&gt;&lt;P&gt;'// ****************************************************************&lt;/P&gt;&lt;P&gt;Private Sub Excel_DeleteBlankSheets(ByRef objExcelDoc) &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For Each ws In objExcelDoc.Worksheets&lt;/P&gt;&lt;P&gt;&amp;nbsp; If (not HasOtherObjects(ws)) then&lt;/P&gt;&lt;P&gt;&amp;nbsp; If objExcelDoc.Application.WorksheetFunction.CountA(ws.Cells) = 0 Then&lt;/P&gt;&lt;P&gt;&amp;nbsp; On Error Resume Next&lt;/P&gt;&lt;P&gt;&amp;nbsp; Call ws.Delete()&lt;/P&gt;&lt;P&gt;&amp;nbsp; End If&lt;/P&gt;&lt;P&gt;&amp;nbsp; End If&lt;/P&gt;&lt;P&gt;Next &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;End Sub &lt;/P&gt;&lt;P&gt;'// ________________________________________________________________&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// ****************************************************************&lt;/P&gt;&lt;P&gt;'// Helper function to determine if there are other objects placed&lt;/P&gt;&lt;P&gt;'// on the sheet ...&lt;/P&gt;&lt;P&gt;'// ****************************************************************&lt;/P&gt;&lt;P&gt;Public Function HasOtherObjects(ByRef objSheet) 'As Boolean &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim c&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If (objSheet.ChartObjects.Count &amp;gt; 0) Then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; HasOtherObjects = true&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit function&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If (objSheet.Pictures.Count &amp;gt; 0) Then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; HasOtherObjects = true&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit function&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If (objSheet.Shapes.Count &amp;gt; 0) Then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; HasOtherObjects = true&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit function&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; HasOtherObjects = false&lt;/P&gt;&lt;P&gt;End Function &lt;/P&gt;&lt;P&gt;'//__________________________________________________________________&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Sep 2015 11:13:33 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Export-Macro-not-working/m-p/953503#M972619</guid>
      <dc:creator>gautik92</dc:creator>
      <dc:date>2015-09-15T11:13:33Z</dc:date>
    </item>
    <item>
      <title>Re: Export Macro not working</title>
      <link>https://community.qlik.com/t5/QlikView/Export-Macro-not-working/m-p/953504#M972620</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;as far as I can tell the top code is the same as what im using but to be on the safe side I copied it only changing the chart name to CH01.&lt;/P&gt;&lt;P&gt;still no joy and I haven't got a clue why? excel doesn't start and obviously no data is copied across.&lt;/P&gt;&lt;P&gt;i've attached a simple qvw with a button, id appreciate if you can just try the button and see whats going on.&lt;/P&gt;&lt;P&gt;obviously have a quick scan of the code but I cant see anything wrong&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Sep 2015 11:21:55 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Export-Macro-not-working/m-p/953504#M972620</guid>
      <dc:creator>samuel_brierley</dc:creator>
      <dc:date>2015-09-15T11:21:55Z</dc:date>
    </item>
    <item>
      <title>Re: Export Macro not working</title>
      <link>https://community.qlik.com/t5/QlikView/Export-Macro-not-working/m-p/953505#M972621</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Samuel,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="en"&gt;&lt;SPAN class="hps"&gt;in your&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;macro&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;it lacked&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;all part&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;that&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;builds&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;dinammicamente&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;the excel file&lt;/SPAN&gt;.&lt;BR /&gt;&lt;BR /&gt; &lt;SPAN class="hps"&gt;Do not remove&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;all of the code&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;that&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;I&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;added&lt;/SPAN&gt;, allowing access &lt;SPAN class="hps"&gt;to the file system&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;in the macro&lt;/SPAN&gt;.&lt;BR /&gt;&lt;BR /&gt; &lt;SPAN class="hps"&gt;Look at&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;the attachment,&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;this works&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Sep 2015 11:32:10 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Export-Macro-not-working/m-p/953505#M972621</guid>
      <dc:creator />
      <dc:date>2015-09-15T11:32:10Z</dc:date>
    </item>
    <item>
      <title>Re: Export Macro not working</title>
      <link>https://community.qlik.com/t5/QlikView/Export-Macro-not-working/m-p/953506#M972622</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;ahh brilliant thanks,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;unfortunately im only a PE user, can you please paste into a text file or just into here?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Sep 2015 12:09:04 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Export-Macro-not-working/m-p/953506#M972622</guid>
      <dc:creator>samuel_brierley</dc:creator>
      <dc:date>2015-09-15T12:09:04Z</dc:date>
    </item>
    <item>
      <title>Re: Export Macro not working</title>
      <link>https://community.qlik.com/t5/QlikView/Export-Macro-not-working/m-p/953507#M972624</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Samuel,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;this is the macro code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;sub exportToExcel_Variant1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// Array for export definitions&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Dim aryExport(0,3)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;aryExport(0,0) = "CH01"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;aryExport(0,1) = "Sales per Region a. Year" &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;aryExport(0,2) = "A1"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;aryExport(0,3) = "data"&lt;/P&gt;&lt;P&gt;Dim objExcelWorkbook 'as Excel.Workbook&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Set objExcelWorkbook = copyObjectsToExcelSheet(ActiveDocument, aryExport)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// Now either just leave Excel open or do some other stuff here&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// like saving the excel, some formatting stuff, ...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;end sub&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&lt;/P&gt;&lt;P&gt;'// YOU DO NOT NEED TO CHANGE THE CODE BELOW !!!!!!!!!!!!!!!!!!!!!!!&lt;/P&gt;&lt;P&gt;'// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// ****************************************************************&lt;/P&gt;&lt;P&gt;'// copyObjectsToExcel&lt;/P&gt;&lt;P&gt;'// ~~&lt;/P&gt;&lt;P&gt;'// Parameters:&lt;/P&gt;&lt;P&gt;'//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; qvDoc - Reference to the QlikView document (normally just use&lt;/P&gt;&lt;P&gt;'//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "ActiveDocument", but you can also use copyObjectsToExcel&lt;/P&gt;&lt;P&gt;'//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outside of QlikView ...&lt;/P&gt;&lt;P&gt;'//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; aryExportDefinition - array of settings&lt;/P&gt;&lt;P&gt;'// ~~&lt;/P&gt;&lt;P&gt;'// Version 1.02&lt;/P&gt;&lt;P&gt;'// ~~&lt;/P&gt;&lt;P&gt;'// The aryExportDefinition is used to pass the following properties to &lt;/P&gt;&lt;P&gt;'// copyObjectsToExcelSheet:&lt;/P&gt;&lt;P&gt;'//&lt;/P&gt;&lt;P&gt;'//&amp;nbsp;&amp;nbsp; Index&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Description&lt;/P&gt;&lt;P&gt;'// ------------------------&lt;/P&gt;&lt;P&gt;'//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Id of the QlikView object to copy from&lt;/P&gt;&lt;P&gt;'//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Name of the sheet (in Excel) where the object should be copied to&lt;/P&gt;&lt;P&gt;'//&lt;/P&gt;&lt;P&gt;'//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (If a sheet with the same name already exists no new &lt;/P&gt;&lt;P&gt;'//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sheet will be created, instead the existing sheet will &lt;/P&gt;&lt;P&gt;'//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; be used for pasting the object)&lt;/P&gt;&lt;P&gt;'//&lt;/P&gt;&lt;P&gt;'//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Note: the sheetName can be max 31 characters long&lt;/P&gt;&lt;P&gt;'// &lt;/P&gt;&lt;P&gt;'//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Range in Excel where the object should be pasted to&lt;/P&gt;&lt;P&gt;'//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PasteMode ["data", "image"]&lt;/P&gt;&lt;P&gt;'//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Defines if the objects underlaying data should be &lt;/P&gt;&lt;P&gt;'//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pasted ("data") or the the image representing the object&lt;/P&gt;&lt;P&gt;'//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; should be used&lt;/P&gt;&lt;P&gt;'// ****************************************************************&lt;/P&gt;&lt;P&gt;Private Function copyObjectsToExcelSheet(qvDoc, aryExportDefinition) 'as Excel.Workbook&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Dim i 'as Integer&lt;/P&gt;&lt;P&gt;Dim objExcelApp 'as Excel.Application&lt;/P&gt;&lt;P&gt;Dim objExcelDoc 'as Excel.Workbook&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Set objExcelApp = CreateObject("Excel.Application")&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;objExcelApp.Visible = true 'false if you want to hide Excel&lt;/P&gt;&lt;P&gt;objExcelApp.DisplayAlerts = false&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;Set objExcelDoc = objExcelApp.Workbooks.Add&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Dim strSourceObject&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Dim qvObjectId 'as String &lt;/P&gt;&lt;P&gt;Dim sheetName&lt;/P&gt;&lt;P&gt;Dim sheetRange&lt;/P&gt;&lt;P&gt;Dim pasteMode&lt;/P&gt;&lt;P&gt;Dim objSource&lt;/P&gt;&lt;P&gt;Dim objCurrentSheet&lt;/P&gt;&lt;P&gt;Dim objExcelSheet&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;for i = 0 to UBOUND(aryExportDefinition)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '// Get the properties of the exportDefinition array&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; qvObjectId = aryExportDefinition(i,0)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sheetName = aryExportDefinition(i,1)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sheetRange = aryExportDefinition(i,2)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pasteMode = aryExportDefinition(i,3)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set objExcelSheet = Excel_GetSheetByName(objExcelDoc, sheetName)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (objExcelSheet is nothing) then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set objExcelSheet = Excel_AddSheet(objExcelApp, sheetName)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (objExcelSheet is nothing) then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msgbox("No sheet could be created, this should not occur!!!")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end if&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end if&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; objExcelSheet.Select&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set objSource = qvDoc.GetSheetObject(qvObjectId)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Call objSource.GetSheet().Activate()&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; objSource.Maximize&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; qvDoc.GetApplication.WaitForIdle&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (not objSource is nothing) then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (pasteMode = "image") then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Call objSource.CopyBitmapToClipboard()&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Call objSource.CopyTableToClipboard(true) '// default &amp;amp; fallback&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end if&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set objCurrentSheet = objExcelDoc.Sheets(sheetName)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objExcelDoc.Sheets(sheetName).Range(sheetRange).Select&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objExcelDoc.Sheets(sheetName).Paste&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (pasteMode &amp;lt;&amp;gt; "image") then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; With objExcelApp.Selection&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .WrapText = True&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .ShrinkToFit = False&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End With&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end if&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objCurrentSheet.Range("A1").Select&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end if&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;next&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Call Excel_DeleteBlankSheets(objExcelDoc)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// Finally select the first sheet&lt;/P&gt;&lt;P&gt;objExcelDoc.Sheets(1).Select&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// Return value&lt;/P&gt;&lt;P&gt;Set copyObjectsToExcelSheet = objExcelDoc&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;end function&lt;/P&gt;&lt;P&gt;'// ________________________________________________________________&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// ****************************************************************&lt;/P&gt;&lt;P&gt;'// Internal function for getting the Excel sheet by sheetName&lt;/P&gt;&lt;P&gt;'// ****************************************************************&lt;/P&gt;&lt;P&gt;Private Function Excel_GetSheetByName(ByRef objExcelDoc, sheetName) 'as Excel.Sheet&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For Each ws In objExcelDoc.Worksheets&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If (trim(ws.Name) = Excel_GetSafeSheetName(sheetName)) then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set Excel_GetSheetByName = ws&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit function&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/P&gt;&lt;P&gt;Next&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// default return value&lt;/P&gt;&lt;P&gt;Set Excel_GetSheetByName = nothing&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;End Function&lt;/P&gt;&lt;P&gt;'// ________________________________________________________________&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Private Function Excel_GetSafeSheetName(sheetName)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '// can be max 31 characters long&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; retVal = trim(left(sheetName, 31))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Excel_GetSafeSheetName = retVal&lt;/P&gt;&lt;P&gt;End Function&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// ****************************************************************&lt;/P&gt;&lt;P&gt;'// Internal function for adding a new sheet&lt;/P&gt;&lt;P&gt;'// ****************************************************************&lt;/P&gt;&lt;P&gt;Private Function Excel_AddSheet(objExcelApplication, sheetName) ' as Excel.Sheet&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '// add a sheet to the last position&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; objExcelApplication.Sheets.Add , objExcelApplication.Sheets(objExcelApplication.Sheets.Count)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim objNewSheet&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set objNewSheet = objExcelApplication.Sheets(objExcelApplication.Sheets.Count)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; objNewSheet.Name = left(sheetName,31)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '// return the newly created sheet&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set Excel_AddSheet = objNewSheet&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;End function&lt;/P&gt;&lt;P&gt;'// ________________________________________________________________&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// ****************************************************************&lt;/P&gt;&lt;P&gt;'// Delete all empty sheets&lt;/P&gt;&lt;P&gt;'// ****************************************************************&lt;/P&gt;&lt;P&gt;Private Sub Excel_DeleteBlankSheets(ByRef objExcelDoc) &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For Each ws In objExcelDoc.Worksheets&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If (not HasOtherObjects(ws)) then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If objExcelDoc.Application.WorksheetFunction.CountA(ws.Cells) = 0 Then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; On Error Resume Next&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Call ws.Delete()&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/P&gt;&lt;P&gt;Next &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;End Sub &lt;/P&gt;&lt;P&gt;'// ________________________________________________________________&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'// ****************************************************************&lt;/P&gt;&lt;P&gt;'// Helper function to determine if there are other objects placed&lt;/P&gt;&lt;P&gt;'// on the sheet ...&lt;/P&gt;&lt;P&gt;'// ****************************************************************&lt;/P&gt;&lt;P&gt;Public Function HasOtherObjects(ByRef objSheet) 'As Boolean &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim c&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If (objSheet.ChartObjects.Count &amp;gt; 0) Then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HasOtherObjects = true&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit function&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If (objSheet.Pictures.Count &amp;gt; 0) Then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HasOtherObjects = true&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit function&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If (objSheet.Shapes.Count &amp;gt; 0) Then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HasOtherObjects = true&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit function&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; HasOtherObjects = false&lt;/P&gt;&lt;P&gt;End Function &lt;/P&gt;&lt;P&gt;'//__________________________________________________________________&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Sep 2015 13:45:04 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Export-Macro-not-working/m-p/953507#M972624</guid>
      <dc:creator />
      <dc:date>2015-09-15T13:45:04Z</dc:date>
    </item>
  </channel>
</rss>

