Teneo_Connector 2021-03-17 18:20:36Z -1 <Adhoc Package> admin 001.25f364b882-8d57-4631-8fb4-9e0fec3a723atexttext30182239-cc54-4a42-8e3a-498da1a805d42b4664ab-3928-4464-a78c-bfb869c59af9collectioncc7f293c-3a49-49db-b5d8-6dc135b71964text -238-1171.25Process Data-60721.25Load Data001.252731367d-79cf-4097-b4ff-05b1db81c108d70eaff5-a91c-4688-b4a8-a20414379a2bd70eaff5-a91c-4688-b4a8-a20414379a2b79543a9d-4498-4f2d-a7a8-977a665e5f04d70eaff5-a91c-4688-b4a8-a20414379a2bd70eaff5-a91c-4688-b4a8-a20414379a2b0b10cbe4-c93b-40a2-886f-7617503f53bfd70eaff5-a91c-4688-b4a8-a20414379a2bcollectiond70eaff5-a91c-4688-b4a8-a20414379a2btextd70eaff5-a91c-4688-b4a8-a20414379a2btextd70eaff5-a91c-4688-b4a8-a20414379a2b75927a95-7647-4da4-bbfb-36c3d68f6150d70eaff5-a91c-4688-b4a8-a20414379a2bnumberd70eaff5-a91c-4688-b4a8-a20414379a2b7eb77da1-b7a7-4c27-9af3-7564dc80cb27d70eaff5-a91c-4688-b4a8-a20414379a2btexttextcollectionc7d43413-c353-4ad0-9039-221409032c43d70eaff5-a91c-4688-b4a8-a20414379a2btextd70eaff5-a91c-4688-b4a8-a20414379a2b2b420a13-35f6-4cff-bdbb-8755ef24b8b3927b3cfb-80a2-45b9-8af5-e0d7a1e67f32927b3cfb-80a2-45b9-8af5-e0d7a1e67f324913d3e6-d473-4ab5-9e48-3f717ac4957c927b3cfb-80a2-45b9-8af5-e0d7a1e67f32927b3cfb-80a2-45b9-8af5-e0d7a1e67f3249b6b674-4fbb-4ddb-94c1-1fe8fac9382f927b3cfb-80a2-45b9-8af5-e0d7a1e67f32collection927b3cfb-80a2-45b9-8af5-e0d7a1e67f32text927b3cfb-80a2-45b9-8af5-e0d7a1e67f32text927b3cfb-80a2-45b9-8af5-e0d7a1e67f32collection927b3cfb-80a2-45b9-8af5-e0d7a1e67f32text927b3cfb-80a2-45b9-8af5-e0d7a1e67f3244621026-527d-4a7c-b5df-d5946d128355092a7ed1-0f2c-4789-9f5e-38bc85457904ForEachPhrase Data927b3cfb-80a2-45b9-8af5-e0d7a1e67f32af788ba7-cdfb-4693-9693-1276fa469189092a7ed1-0f2c-4789-9f5e-38bc85457904927b3cfb-80a2-45b9-8af5-e0d7a1e67f32d9346ff9-55ce-4c88-a80d-e9bdceee709bdb5ff6f0-0571-48e0-b464-cf72a9a711a3927b3cfb-80a2-45b9-8af5-e0d7a1e67f32number1927b3cfb-80a2-45b9-8af5-e0d7a1e67f32number1927b3cfb-80a2-45b9-8af5-e0d7a1e67f32f37e006a-cf01-4292-bcd0-6c476d52f2e2927b3cfb-80a2-45b9-8af5-e0d7a1e67f327a75a3b2-58ce-4509-bf8d-97df985b4466927b3cfb-80a2-45b9-8af5-e0d7a1e67f322384401c-beaf-419e-b89d-d3e218696831927b3cfb-80a2-45b9-8af5-e0d7a1e67f32number927b3cfb-80a2-45b9-8af5-e0d7a1e67f3218389af2-d282-4671-bbc2-947b7c5e35786fa26eb6-b74c-46d7-962d-54bb2cca3bc7927b3cfb-80a2-45b9-8af5-e0d7a1e67f32927b3cfb-80a2-45b9-8af5-e0d7a1e67f32text927b3cfb-80a2-45b9-8af5-e0d7a1e67f327029541c-c79b-42c7-b5d3-7bc92be38355927b3cfb-80a2-45b9-8af5-e0d7a1e67f32text927b3cfb-80a2-45b9-8af5-e0d7a1e67f32d9346ff9-55ce-4c88-a80d-e9bdceee709bd4b4fa70-70d0-4c50-b9dd-705354e9fb3b927b3cfb-80a2-45b9-8af5-e0d7a1e67f32 ca515603-8af2-4608-8a70-31028a7d9a0bApplicationApplicationunknownFalse-13301.25Clean Up001.25Remove Blank Rows001.25CheckInstanceHandle-5401.25CheckInstanceAndWorkbook-157-701.25CheckFileExists-22-321.25Create Instance-60-421.25Open Instance209-941.25Attach001.25Attach to workbook001.25Close Instance0-421.25Release Instance0-841.25Exit001.25Close All Instances001.25Set Current Instance-3601.25Set Events Enabled001.25Show0-1311.25Hide-62-561.25Create Workbook-81-2041.25Open Workbook0-151.25Activate Workbook-137-751.25Save Workbook-4401.25Save Current Workbook001.25Save Workbook As-6401.25Save Current Workbook As-135-31.25Close Workbook-2321101.25Close Current Workbook001.25Is Read Only-9101.25Activate Worksheet-132-1061.25Create Worksheet-120-841.25Delete Worksheet16251.25Move Worksheet85981.25Copy and Paste Worksheet Range0841.25Get Worksheet As Collection-242-1261.25Get Worksheet As Collection (Fast)0-1561.25Get Worksheet as Collection Offset-119-5891.25Get Worksheet Range As Collection147-331.25Split Worksheet0-211.25Get Worksheet Names-1001.25Get Worksheet Name-2701.25Get Worksheet Position0381.25Worksheet Exists105811.25Get Number Of Rows801.25Go To Cell-601.25Go To Next Cell-18001.25Get Active Cell001.25Find Next Empty Cell0-421.25Go To Next Empty Cell Left001.25Go To Next Empty Cell Right001.25Go To Next Empty Cell Up001.25Go To Next Empty Cell Down001.25Set Cell Value5501.25Write Collection0-631.25Get Cell Value0-41.25Get Active Cell Value001.25Get Formatted Cell Value-5401.25Format Cell001.25Format Current Cell0-281.25Set Window Size001.25Set Window Location001.25Set Window State-1101.25Select001.25Delete82211.25Insert0421.25Copy9801.25Cut001.25Paste-282421.25Write To Clipboard001.25Protect Workbook001.25Hide Worksheet001.25Hide Other Worksheets-276-9171.25Import CSV52881.25Run Macro0421.25d0d87ebb-154d-4756-8b89-d2d5445479aeSystem.Data.dllSystem.Xml.dllSystem.Drawing.dllSystem.Windows.Forms.dllSystemSystem.DrawingSystem.Collections.GenericSystem.IOMicrosoft.VisualBasicSystem.Windows.FormsSystem.DataSystem.DiagnosticsSystem.TextSystem.ThreadingSystem.Runtime.InteropServicesvisualbasic ByRef ppvObject As Object) As Int32 ' The 'active' instance of excel. ' This is updated on any access of an instance (either adding a new ' instance or getting one) ' Private CurrentInstance As Object ' Map of instances keyed against the handles which represent them. ' Private HandleMap As Dictionary(Of Integer, Object) ' Map of handles keyed against the instances they represent. ' Here to ensure we don't assign multiple handles to a single ' instance and bring about a memory leak ' Private InstanceMap As Dictionary(Of Object, Integer) ' Constructor - this just initialises the collections which map ' the excel instances to handles and vice versa. Public Sub New() Me.HandleMap = New Dictionary(Of Integer, Object)() Me.InstanceMap = New Dictionary(Of Object, Integer)() End Sub ' Execute a sub within a specific timeout period ' ' @param timeout The number of seconds to wait before timing out ' @param name The name of the operation ' @param operation The operation to perform Private Sub ExecWithTimeout(timeout As Integer, name As String, operation As Action) Dim ar = operation.BeginInvoke(Nothing, Nothing) If Not ar.AsyncWaitHandle.WaitOne(TimeSpan.FromSeconds(timeout)) Then Throw New TimeoutException(name & " took more than " & timeout & " secs.") End If operation.EndInvoke(ar) End Sub ' Execute a function within a specific timeout period ' ' @param timeout The number of seconds to wait before timing out ' @param name The name of the operation ' @param operation The operation to perform ' ' @return The result of the operation Private Function ExecWithTimeout(Of T)(timeout As Integer, name As String, operation As Func(Of T)) As T Dim ar = operation.BeginInvoke(Nothing, Nothing) If Not ar.AsyncWaitHandle.WaitOne(TimeSpan.FromSeconds(timeout)) Then Throw New TimeoutException(name & " took more than " & timeout & " secs.") End If return operation.EndInvoke(ar) End Function ' Used to hold a reference to the last exception that occurred ' Be careful to set back to nothing when the type has been checked. Private mLastException As Exception = Nothing ' Loops over all excel instances and gets the instance with a given ' workbook name. This uses active accessibility because: ' Dim application = GetObject(,"Excel.Application) ' application.Windows(workbookName).Activate() ' dosen't work if there is more than one instance of excel ' ' @param workBookName The name of the workbook ' ' @return The application instance Public Function OpenNamedObjectAA(workbookName As String) As Object Const OBJID_NATIVEOM = &HFFFFFFF0 Dim IID_DISPATCH As New Guid("00020400-0000-0000-C000-000000000046") Dim workBook As Object = Nothing Do Dim XLhwnd As IntPtr = FindWindowEx(IntPtr.Zero, XLhwnd, "XLMAIN", Nothing) If IntPtr.Equals(XLhwnd, IntPtr.Zero) Then Exit Do Dim XLDESKhwnd As IntPtr = FindWindowEx(XLhwnd, IntPtr.Zero, "XLDESK", Nothing) Dim WBhwnd As IntPtr = FindWindowEx(XLDESKhwnd, IntPtr.Zero, "EXCEL7", Nothing) AccessibleObjectFromWindow(WBhwnd, OBJID_NATIVEOM, IID_DISPATCH, workBook) If workBook IsNot Nothing Then Dim application As Object = workBook.Application If application IsNot Nothing Then Try application.Windows(workbookName).Activate() Return application Catch ex As Exception Continue Do End Try End If End If Loop Throw new Exception("Excel with workbook name '" & workBookName & "' not found.") End Function ' Gets the handle for a given instance ' ' If the instance is not yet held, then it is added to the ' map and a handle is assigned to it. It is also set as the ' 'current' instance, accessed with a handle of zero in the ' below methods. ' ' Either way, the handle which identifies the instance is returned ' ' @param Instance The instance for which a handle is required ' ' @return The handle of the instance Protected Function GetHandle(Instance As Object) As Integer If Instance Is Nothing Then Throw New ArgumentNullException("Tried to add an empty instance") End If ' Check if we already have this instance - if so, return it. If InstanceMap.ContainsKey(Instance) Then CurrentInstance = Instance Return InstanceMap(Instance) End If Dim key as Integer For key = 1 to Integer.MaxValue If Not HandleMap.ContainsKey(key) HandleMap.Add(key, Instance) InstanceMap.Add(Instance, key) Me.CurrentInstance = Instance Return key End If Next key Return 0 End Function ' Gets the instance corresponding to the given handle, setting ' the instance as the 'current' instance for future calls ' ' A value of 0 will provide the 'current' instance, which ' is set each time an instance is added or accessed. ' ' This will return Nothing if the given handle does not ' correspond to a registered instance, or if the current ' instance was closed and the reference has not been updated. ' ' @param Handle The handle representing the instance required, ' or zero to get the 'current' instance. Protected Function GetInstance(Handle As Integer) As Object Dim Instance As Object = Nothing If Handle = 0 Then If CurrentInstance Is Nothing Then ' Special case - getting the current instance when the ' instance is not set, try and get a current open instance. ' If none there, create a new one and assign a handle as if ' CreateInstance() had been called ' Try ' Instance = GetObject(,"Excel.Application") ' Catch ex as Exception ' Not running ' Instance = Nothing ' End Try ' If Instance Is Nothing Then Create_Instance(Handle) ' Instance = CreateObject("Excel.Application") ' Force the instance into the maps. ' GetHandle(Instance) ' CurrentInstance should now be set. ' If it's not, we have far bigger problems ' End If End If Return CurrentInstance End If Instance = HandleMap(Handle) If Not Instance Is Nothing Then CurrentInstance = Instance End If Return Instance End Function ' Helper method in forcing a com object to be released. Private Sub ReleaseObject(ByVal comOj As Object) Try System.Runtime.InteropServices.Marshal.ReleaseComObject(comOj) System.Runtime.InteropServices.Marshal.FinalReleaseComObject(comOj) comOj = Nothing Catch ex As Exception comOj = Nothing Finally ' Why is GC.Collect being called twice? ' See https://msdn.microsoft.com/en-us/library/ff647790.aspx?f=255&MSPPError=-2147217396#scalenetchapt05_topic9 GC.Collect() GC.WaitForPendingFinalizers() GC.Collect() End Try End Sub ' Close the instance with the given handle, not saving any work, making ' sure that it is removed from this VBO's collection of instances ' ' @param Handle The handle representing the instance to close Protected Sub CloseInstance(Handle As Integer) CloseInstance(Handle, False) End Sub ' Close the instance with the given handle, saving the work as specified. ' ' @param Handle The handle representing the instance ' ' @param SaveWorkbooks True to save the workbooks before quitting the instance, ' False to discard any changes Protected Sub CloseInstance(Handle As Integer, SaveWorkbooks As Boolean) Dim Instance As Object = Nothing If Handle = 0 AndAlso CurrentInstance Is Nothing Then Throw New NullReferenceException("Tried to close nonexistent current instance") ElseIf Handle = 0 ' Current Instance - reset it Handle = GetHandle(CurrentInstance) ' We need the handle to remove from HandleMap Instance = CurrentInstance CurrentInstance = Nothing Else Instance = GetInstance(Handle) End If Me.HandleMap.Remove(Handle) Me.InstanceMap.Remove(Instance) Instance.DisplayAlerts = False ' Hide alerts ' First close all the workbooks and the workbooks collection Dim wbs as Object = Instance.Workbooks If wbs IsNot Nothing Then For Each Workbook As Object In wbs Workbook.Close(SaveWorkbooks) ReleaseObject(Workbook) Next wbs.Close() End If ReleaseObject(wbs) ' Try quitting - sometimes this is enough Instance.Quit() ' Try and force a com object release - this might quit excel for us. ReleaseObject(Instance) ' Now if the com object has released the RCW, we need to stop ' We'll know because if we try and get the version and it fails ' then the COM object has been cleaned up. ' If so, end the proc now - we have to assume the instance is gone Dim Ver as Double = 0.0 Try Ver = Val(Instance.Version) Catch ex as Exception ' Not got the version - assuming cleared up Return Finally SetLastError(0) ' If any errors have occurred thus far, clear them End Try ' Now it's the messy stuff to try and find the excel instance and nuke ' it from orbit. It's the only way to be sure. ' The window handle for the excel instance Dim hwnd As IntPtr = IntPtr.Zero ' Later versions of excel expose the window handle If Val(Ver) >= 10 Then _ hwnd = New IntPtr(CType(Instance.Parent.Hwnd, Integer)) ' If the window handle isn't set, must be an earlier version of excel ' Use FindWindow to find the window with the GUID that we set in it on creation If IntPtr.Equals(hwnd, IntPtr.Zero) Then _ hwnd = FindWindow(Nothing, Instance.Caption) ' If the window handle is still zero, the instance must already be closed If Not IntPtr.Equals(hwnd, IntPtr.Zero) Then ' Get the process ID for the window we have Dim resp, procId as Integer resp = GetWindowThreadProcessId(hwnd, procId) If procId = 0 Then ' can’t get Process ID If EndTask(hwnd) = 0 Then ' EndTask returns a bool - 0 = False Throw New ApplicationException("Failed to close Excel Instance.") End If Else ' We have a process ID - use it to kill excel Dim proc As Process = Process.GetProcessById(procId) ' Try clicking the 'X' proc.CloseMainWindow() proc.Refresh() If Not proc.HasExited Then proc.Kill() ' Last resort - kill it with fire End If End If End If End Sub ' Creates a new workbook in the instance represented by the given handle ' ' @param Handle The handle of the instance on which the workbook should be held ' ' @return The workbook object that was created. Protected Function NewWorkbook(Handle as Integer) As Object Dim wb as Object = GetInstance(handle).Workbooks.Add() ' Create a new Worksheet? if wb.Worksheets.Count = 0 Then wb.Sheets.Add().Activate() Else ' Just use the first sheet wb.Sheets(1).Activate() End If Return wb End Function ' Gets the workbook in the given instance with the given name. ' ' @param Handle The handle representing the instance which holds the workbook ' ' @param Name The name of the workbook on the instance ' ' @return The object representing the workbook defined Protected Function GetWorkbook(Handle As Integer, Name as String) As Object Dim wb as Object = Nothing If String.IsNullOrEmpty(Name) Then wb = GetInstance(Handle).ActiveWorkbook If wb Is Nothing ' We need to create a deafult workbook wb = NewWorkbook(Handle) End If Return wb Else Return GetInstance(Handle).Workbooks(Name) End If End Function ' Gets the worksheet specified by the given handle, workbook name and ' worksheet name. If no such sheet is available, this will create a ' new one and return that ' ' @param Handle The handle identifying the instance which should be ' acted on ' ' @param WorkbookName The name of the workbook within the instance ' ' @param WorksheetName The name of the worksheet required ' ' @return The sheet object representing the sheet with the given name Protected Function GetWorksheet(Handle As Integer, _ WorkbookName As String, _ WorksheetName As String) As Object Return GetWorksheet(Handle,WorkbookName,WorksheetName,True) End Function ' Gets the worksheet specified by the given handle, workbook name and ' worksheet name. If no such sheet is available, this will create a ' new one or return Nothing, depending on the given flag ' ' @param Handle The handle identifying the instance which should be ' acted on ' ' @param WorkbookName The name of the workbook within the instance ' ' @param WorksheetName The name of the worksheet required ' ' @param CreateIfNotExists True to create the worksheet if it doesn't ' exist; False to return Nothing if it doesn't exist. ' ' @return The sheet object representing the sheet required or Nothing ' if no such sheet exists and CreateIfNotExists was False Protected Function GetWorksheet(Handle As Integer, _ WorkbookName As String, _ WorksheetName As String, _ CreateIfNotExists As Boolean) As Object Dim wb As Object = GetWorkbook(Handle, WorkbookName) If (String.IsNullOrEmpty(WorksheetName)) Then Dim ws as Object = wb.ActiveSheet If ws Is Nothing Then Return wb.Sheets.Add() Else Return ws End If Else Dim sheets as Object = wb.Sheets If sheets IsNot Nothing Then For Each sheet as Object in sheets If sheet.Name = WorksheetName Then _ Return sheet Next End If ' Didn't find the sheet... If CreateIfNotExists Then Dim sheet as Object = sheets.Add() sheet.Name = WorksheetName Return sheet End If ' Nothing else we can do - return nowt Return Nothing End If End Function ' Gets the next cell, relative to a given cell in a given direction ' Note that if the cell is at a boundary, then the same cell is returned. ' ' @param cell : The cell to use as a base cell ' ' @param strDir : one of "L", "R", "U", "D" representing a direction from ' the given cell to move in. ' ' @return : The cell object representing the 'next cell' Protected Function GetNextCell(cell as Object, strDir as String) As Object Try Select Case strDir Case "L" cell = cell.Offset(0,-1) Case "R" cell = cell.Offset(0,1) Case "U" cell = cell.Offset(-1,0) Case "D" cell = cell.Offset(1,0) End Select Catch ex As Exception ' A COM Exception is thrown if the cell is at a boundary and the offset ' would break that boundary End Try Return cell End Function Const SchemaColumnName As String = "Column Name" Function GetWorkSheetUsedRangeAsDataTable( usedRange as object, firstRowIsHeader As Boolean, fetchDataWithMethod As String) As DataTable If usedRange Is Nothing Then Throw new ArgumentNullException("usedRange") Dim range(usedRange.Rows.Count, usedRange.Columns.Count) As Object Select Case fetchDataWithMethod Case "Text" For currentRow As Integer = 1 To usedRange.Rows.Count For currentColumn As Integer = 1 To usedRange.Columns.Count Dim text = usedRange.Rows(currentRow).Cells(currentColumn).Text range(currentRow, currentColumn) = text Next Next Case "Value2" range = usedRange.Value2 Case Else range = usedRange.Value End Select Dim result = new DataTable() Dim headingsList = GetFirstRowHeadings(range, firstRowIsHeader) For Each heading As String In headingsList result.Columns.Add(heading, GetType(string)) Next Dim startRowIndex = If(firstRowIsHeader AndAlso range.GetLength(0) > 1, 2, 1) Dim totalRows As Integer = usedRange.Rows.Count Dim totalCols As Integer = If(fetchDataWithMethod = "Text", usedRange.Columns.Count, range.GetLength(1)) For i As Integer = startRowIndex To totalRows Dim currentRow As DataRow = result.NewRow result.Rows.Add(currentRow) For j As Integer = 1 To totalCols Dim value = range(i, j) If value Is Nothing Then value = String.Empty currentRow.Item(j - 1) = value.ToString() Next j Next i Return result End Function Function GetFirstRowHeadings(arr as Object(,), firstRowIsHeader As Boolean) as List(Of String) Dim result = new List(Of String)() For i as Integer = 1 to arr.GetLength(1) Try Dim value = arr(1, i) Dim heading As String = If(value Is Nothing OrElse Not firstRowIsHeader, String.Empty, value.ToString) result.Add(heading) Catch e As Exception ' ignore index out of bound exception, ' typically thrown when .Text is used End Try Next i return result End Function Function ParseDelimSeparatedVariables( data As String, delimStr As String, schema As DataTable, firstRowIsHeader As Boolean) As DataTable Const DefaultState As Integer = 0 Const Instring As Integer = 1 Const FirstQuote As Integer = 2 Const Quote As Char = """"c If delimStr.Length = 0 Then delimStr = "," If delimStr.Length <> 1 Then Throw New Exception("Delimiter must be a single character") Dim delim As Char = delimStr(0) Dim state As Integer = DefaultState Dim firstRow As Boolean = True Dim columnValue As New StringBuilder() Dim emptySchema As Boolean = schema Is Nothing OrElse schema.Rows.Count = 0 If emptySchema Then schema = Nothing Dim outputCollection As New DataTable() If Not emptySchema Then For Each schemaRow As DataRow In schema.Rows Dim colName As String = schemaRow(SchemaColumnName).ToString outputCollection.Columns.Add(colName, GetType(String)) Next End If Dim row As DataRow = Nothing Dim colIndex As Integer = 0 Using sw As New StringReader(data) While True Dim line As String = sw.ReadLine() If line Is Nothing Then Exit While ' If we're not processing a CRLF in the middle of a string, we want to move ' onto the next row; if we are, we keep the current row and column since we're ' still writing to that 'cell'. If state <> Instring Then row = outputCollection.NewRow colIndex = 0 End If For Each ch As Char In line Select Case ch Case delim ' ie. 'ch' is the specified delimiter - "," or "\t" Select Case state Case Instring columnValue.Append(delim) Case Else ' Covers 'default' and 'first quote'. If firstRow Then HandleFirstRow( firstRowIsHeader, columnValue.ToString(), colIndex, row, schema ) Else row(colIndex) = columnValue.ToString End If columnValue.Length = 0 state = DefaultState colIndex += 1 End Select Case Quote Select Case state Case FirstQuote state = Instring columnValue.Append(Quote) Case Instring state = FirstQuote Case Else ' If we find a quote in the middle of a non-quoted cell, it's ' a literal quote; otherwise (ie. at the start of a cell), it ' means the cell value is wrapped - go into 'Instring' state If columnValue.Length > 0 Then columnValue.Append(Quote) Else state = Instring End If End Select Case Else columnValue.Append(ch) End Select Next If firstRow Then HandleFirstRow( firstRowIsHeader, columnValue.ToString(), colIndex, row, schema ) firstRow = False columnValue.Length = 0 state = DefaultState If Not firstRowIsHeader Then outputCollection.Rows.Add(row) Else ' If we're still in the middle of the string we want to include the CRLF in the ' actual value that we're writing and leave the state at 'Instring' If state = Instring Then columnValue.Append(vbCrLf) Else row.Item(colIndex) = columnValue.ToString outputCollection.Rows.Add(row) columnValue.Length = 0 state = DefaultState End If End If End While End Using Return outputCollection End Function Sub HandleFirstRow(firstRowIsHeader As Boolean, val As String, colIndex As Integer, row As DataRow, schema As DataTable) Dim tab = row.Table If schema Is Nothing Then If firstRowIsHeader Then Dim colName As String = val tab.Columns.Add(colName, GetType(String)) Else Dim colName As String = "Column " & tab.Columns.Count tab.Columns.Add(colName, GetType(String)) row(colIndex) = val End If Else If firstRowIsHeader Then Dim schemaColName As String = schema.Rows(colIndex)(SchemaColumnName).ToString Dim colName As String = val If colName <> schemaColName Then Throw New Exception("Column name mismatch. Column '" & colName & "' dosen't match schema name of '" & schemaColName & "'") End If End If End If End Sub ' The common language runtime (CLR) automatically passes locale ID 1033 to all methods and properties ' in the Excel object model that accept locale-sensitive data. There is no way to change this behavior ' automatically for all calls into the object model. However, you can pass a different locale ID to a ' specific method by using InvokeMember to call the method and by passing the locale ID to the culture ' parameter of the method. ' https://msdn.microsoft.com/en-us/library/bb157877.aspx ' Additionaly we must use the culture that Excel is using and not the local machine. Private Function InvokeReflection(Instance As Object, Name As String, bindingFlags As Reflection.BindingFlags, ParamArray args() As Object) As Object const msoLanguageIDUI = 2 'User interface language. Dim culture = New System.Globalization.CultureInfo(DirectCast( _ CurrentInstance.LanguageSettings.LanguageID(msoLanguageIDUI), Integer)) Return Instance.GetType().InvokeMember(Name, bindingFlags, Nothing, Instance, args, culture) End Function Private Function Invoke(Instance As Object, Name As String, ParamArray args() As Object) As Object Return InvokeReflection(Instance, Name, Reflection.BindingFlags.InvokeMethod, args) End Function Private Sub SetProperty(Instance As Object, Name As String, ParamArray args As Object()) InvokeReflection(Instance, Name, Reflection.BindingFlags.SetProperty, args) End Sub Private Function GetProperty(Instance As Object, Name As String) As Object Return InvokeReflection(Instance, Name, Reflection.BindingFlags.GetProperty) End Function ' Gets the clipboard text, ensuring that the retrieval is performed ' on an STA thread so that it retrieves it correctly. Function GetClipboardText() As String Dim data As String = Nothing With New Threading.Thread(Sub() data = Clipboard.GetDataObject().GetData(DataFormats.Text, True)) .SetApartmentState(Threading.ApartmentState.STA) .Start() .Join() End With Return data End Function ' Sets the clipboard text, ensuring that it is done on an STA thread. Sub SetClipboardText(value as String) With New Threading.Thread(Sub() Clipboard.SetText(value)) .SetApartmentState(Threading.ApartmentState.STA) .Start() .Join() End With End Sub ]]>ab6c7fcd-9997-4c5c-9ff1-2dcb5879975aCloses all the instances that have been created / attached to using this business object.ab6c7fcd-9997-4c5c-9ff1-2dcb5879975afedc107e-577b-47d9-a445-c3a3e66ef516ab6c7fcd-9997-4c5c-9ff1-2dcb5879975a73b8ddb4-b679-4697-b3c4-79ce833a9456Creates a workbook on the specified instance, returning the resultant name. Params: - handle : Number : The handle identifying the instance on which the workbook should be required. The default of zero indicates the current instance. Returns: - Workbook Name : Text : The workbook name that Excel has granted to the new workbook. By default, Excel will call it "Book<n>" where <n> is a positive integer. Exceptions: - Bad Handle : If the given handle did not correspond to an instance.73b8ddb4-b679-4697-b3c4-79ce833a9456852ff62f-6d2b-4031-b675-ec155fd8890873b8ddb4-b679-4697-b3c4-79ce833a9456ab6c7fcd-9997-4c5c-9ff1-2dcb5879975aClean Up Page This is an optional page where you might choose to perform some finalisation (or "cleanup") tasks as your business object is closed down. The cleanup action will be called automatically immediately after closing your business object at the end of a business process. You will not be able to call this action from a business process, nor will it be called at any other time than before the disposal of the business object.Initialise Page This is an optional page where you might choose to perform some initialisation tasks after your business object is loaded. The initialise action will be called automatically immediately after loading your business object. You will not be able to call this action from a business process, nor will it be called at any other time than after the creation of the object.2fb01e3f-e275-43bc-83eb-579001da335bOpens a workbook using the instance specified in the given handle, opening the book represented by the given filename. Params : - handle : Number : The handle to the instance in which the workbook should be opened. The default value of zero indicates the current instance. - File name : Text : The path to the file which should be opened. Outputs: - Workbook Name : Text : The name of the workbook that Excel uses to identify it. Exceptions: - Bad Handle : If the given handle did not correspond to an instance. - File Not Found : If the given file does not exist or is not a file.2fb01e3f-e275-43bc-83eb-579001da335b9e0df7e0-ab34-4a97-9f69-db66c88ff5f42fb01e3f-e275-43bc-83eb-579001da335b6e7cb0ad-5910-4065-aab2-2919726bae39Saves the workbook using the current name as a filename. Params: - handle : Number : The integer identifying the instance on which the workbook should be saved. The default of 0 indicates the current instance. - Workbook Name : The name of the workbook to be saved. The default of empty indicates that the active workbook should be saved. Exceptions: - Bad Handle : If the given handle did not correspond to an instance. - Workbook Not Found : If the given workbook did not exist on the specified instance.6e7cb0ad-5910-4065-aab2-2919726bae39ab6f627b-d630-4bdd-b840-7aac26b5806f6e7cb0ad-5910-4065-aab2-2919726bae3921a53e34-8128-41cb-ad73-17250758ff23Save the given workbook using the given file name. Params : - handle : Number : The integer identifying the instance on which the workbook resides. Default (0) indicates the current instance - Workbook Name : Text : The name of the workbook which should be saved. Default ("") indicates the active workbook. - File name : Text : The path and name of the file to which the workbook should be saved. Output : - New Workbook Name : Text : The new name with which the workbook is identified within the excel instance. Exceptions: - Bad Handle : If the given handle did not correspond to an instance. - Workbook Not Found : If the given workbook did not exist on the specified instance.21a53e34-8128-41cb-ad73-17250758ff23733c2840-8162-465a-a8f2-7d023087c369Activates / Creates the worksheet specified by the given parameters Params: - handle : Number : The instance handle; - Workbook Name : Text : is the name of the workbook on which the sheet resides / should be created; - Sheet name : Text : The name of the worksheet - Create If Missing? : Flag : Indicates if the worksheet should be created if one with that name doesn't exist on the workbook - if missing, it will *not* create it. Exceptions: - Bad Handle : If the given handle did not correspond to an instance. - Workbook Not Found : If the given workbook did not exist on the specified instance. - Worksheet Not Found : If the given worksheet did not exist on the specified workbook.733c2840-8162-465a-a8f2-7d023087c36937a2442f-8e22-4749-8b44-4ef2980f28a6Deletes the specified worksheet from the workbook. Params: - handle : Number : The excel instance handle - Workbook Name : Text : The name of the workbook - Worksheet Name : Text : The name of the sheet to delete. If the sheet doesn't exist, this will fail silently - ie. nothing will occur. Exceptions: - Bad Handle : If the given handle did not correspond to an instance. - Workbook Not Found : If the given workbook did not exist on the specified instance. - Worksheet Not Found : If the named worksheet did not exist on the specified workbook, or if the active sheet was specified and there was no active sheet.ed502669-4207-4c88-895d-8c58ec321578Activates the cell in the given workbook, identified by the given cell reference. Params: - handle : Number: The integer handle identifying the excel instance (0 represents 'active' instance) - Cell Reference : Text : the cell reference to go to NOTE - the active sheet in the instance is the one on which the cell is activeed502669-4207-4c88-895d-8c58ec321578dc6f6efd-7724-48b0-8544-8f86f7bb1b8ded502669-4207-4c88-895d-8c58ec3215785698ca16-b00d-4d62-9d9b-e76e8295b556Sets the specified cell's value to the given value. This has the side-effect of setting the active cell to that which is specified here. Exceptions Office 2013 onwards There are known issues when attempting to read and write data using the Excel VBO with the application set to run in background mode. These issues can be overcome by using the Show action 5698ca16-b00d-4d62-9d9b-e76e8295b556f54da925-167d-4c17-b44c-1861acd36f9b5698ca16-b00d-4d62-9d9b-e76e8295b5560e031661-2f5e-4cb2-949b-97babe59ff81Gets the value of the specified cell - note that if the cell has some formatting set in it, this does *not* return the formatted value - See "Get Formatted Cell Value". Note also that this has the side-effect of making the specified cell active.73b8ddb4-b679-4697-b3c4-79ce833a94561d707fac-863d-4281-b9d0-a65c74bf374c21a53e34-8128-41cb-ad73-17250758ff23text5698ca16-b00d-4d62-9d9b-e76e8295b556text5698ca16-b00d-4d62-9d9b-e76e8295b556text5698ca16-b00d-4d62-9d9b-e76e8295b5563efecc12-e41e-4386-b852-2651ab750ecced502669-4207-4c88-895d-8c58ec321578texted502669-4207-4c88-895d-8c58ec321578f9e7f87b-06e3-441b-a4ed-7cb2a60b38c8ed502669-4207-4c88-895d-8c58ec321578number05698ca16-b00d-4d62-9d9b-e76e8295b55650be384a-f88b-477b-9bff-ee76cd5684bced502669-4207-4c88-895d-8c58ec3215785698ca16-b00d-4d62-9d9b-e76e8295b556number021a53e34-8128-41cb-ad73-17250758ff23number06632ed99-8751-4c2a-ad00-3cc016300e08Activates the excel workbook identified by the given handle and name. Params: - handle : Number : The identifier of the instance which is holding the workbook; 0 (default) indicates the active instance - Name : Text : The name of the workbook which should be activated Exceptions: - Invalid Input Parameter : If the worksheet name parameter is given - Bad Handle : If the handle does not correspond to an Excel instance6632ed99-8751-4c2a-ad00-3cc016300e086344b53e-9777-411e-bab1-aee5633bbc7d6632ed99-8751-4c2a-ad00-3cc016300e086632ed99-8751-4c2a-ad00-3cc016300e08number0ed502669-4207-4c88-895d-8c58ec321578edbe4d75-3363-4d77-b489-87fb02980fdc6632ed99-8751-4c2a-ad00-3cc016300e0873b8ddb4-b679-4697-b3c4-79ce833a9456number06ccaae8b-c06f-45c8-8772-835218881458Closes the specified workbook, saving changes if requested. Params: - handle : Number : The integer identifying the instance on which the workbook should be closed. 0 indicates the current instance. - Workbook Name : Text : The name of the workbook which should be closed. "" indicates the active workbook on the specified instance. - Save Changes : Flag : True to save the changes (the equivalent of calling 'Save Workbook' before closing the workbook); False to discard any changes when closing the workbook. Exceptions: - Bad Handle : If the given handle did not correspond to an instance. - Workbook Not Found : If the given workbook did not exist on the specified instance.6ccaae8b-c06f-45c8-8772-8352188814582fb01e3f-e275-43bc-83eb-579001da335b6c2fa22d-1876-46b7-92eb-cf8343d0911f2fb01e3f-e275-43bc-83eb-579001da335bnumber02fb01e3f-e275-43bc-83eb-579001da335btext99e648cc-a136-471c-8424-19071c0fd9e7Creates an instance of Excel, returning a handle with which it can be retrieved using the global object method : GetInstance(handle).6ec3006a-6553-4526-b522-32526c4aa3ccCloses the instance represented by the given handle, saving the changes or not as specified. Params: - handle : Number : The handle identifying the instance that should be closed; The default of 0 will close the 'current active' instance - ie. the last one accessed. Note that following the 'current active' instance being closed, the current instance will not be set. - Save Changes : Flag : True to save the instance's workbooks before closing; False to just close the instance. Exceptions: - Bad Handle : If the given handle did not correspond to an instance. 6ec3006a-6553-4526-b522-32526c4aa3ccb06ec4ea-540a-4321-a1f9-a645f288eb9e6ec3006a-6553-4526-b522-32526c4aa3ccec281dc5-ed57-4b8b-9bf5-212e314657aaOpens a currently running instance of Excel with the given workbook name. If no workbook name is given, it opens the active instance of Excel. If there is no instance of Excel currently running, it will create a new one. Params: - WorkbookName : Text : should correspond to the workbook which should be opened - an empty value will cause the first activated instance of Excel to be opened. Returns: - handle : Number : The numeric handle with which this instance can be identifiedec281dc5-ed57-4b8b-9bf5-212e314657aaa08aa147-8eee-4f21-a683-142cb1680af6ec281dc5-ed57-4b8b-9bf5-212e314657aa99e648cc-a136-471c-8424-19071c0fd9e7c642c278-2fc8-4504-826c-25e0281a26af99e648cc-a136-471c-8424-19071c0fd9e799e648cc-a136-471c-8424-19071c0fd9e7a13edde2-3883-4007-9719-92f0e1009ddd99e648cc-a136-471c-8424-19071c0fd9e7number859e3c31-acbc-48dd-8535-ef2ce9385d70Sets the "current active" instance to that specified. Params: - handle : Number : The handle of the instance that should be set as the current instance. The default of zero only has the effect of throwing an exception if no current instance is set, otherwise it's a no-op. Exceptions: - Bad Handle : If the given handle did not correspond to an instance. 859e3c31-acbc-48dd-8535-ef2ce9385d7079986761-82ee-46d2-83d5-4e3375b886be859e3c31-acbc-48dd-8535-ef2ce9385d70859e3c31-acbc-48dd-8535-ef2ce9385d70number06ec3006a-6553-4526-b522-32526c4aa3ccnumber06ec3006a-6553-4526-b522-32526c4aa3cc5d9b206b-bf58-47fe-806b-c2d6807d911e492548e8-2fa5-473e-9061-df8326d46e4cChecks if the handle given can be used to access a valid instance. This means that the handle is a non-zero value which represents a handle, or it is zero and a 'current instance' is set (current instance is set every time an instance is created or accessed using GetInstance() - it may be set to Nothing if an instance is closed). - handle is the handle to check that it represents a valid instance Exceptions: - Bad Handle : If the given handle doesn't represent an instance492548e8-2fa5-473e-9061-df8326d46e4c34b692da-278c-4018-96ec-a9d03f696b43492548e8-2fa5-473e-9061-df8326d46e4c6ec3006a-6553-4526-b522-32526c4aa3cc7e31a12c-4578-4202-b034-a306f3ee679d492548e8-2fa5-473e-9061-df8326d46e4c492548e8-2fa5-473e-9061-df8326d46e4ca7383095-97e9-4fa8-90e0-ad186e9df285492548e8-2fa5-473e-9061-df8326d46e4cnumber492548e8-2fa5-473e-9061-df8326d46e4cflag492548e8-2fa5-473e-9061-df8326d46e4c8b5e76e6-a81e-4377-b161-1bef1ff3d753a4c8054c-d063-42e0-8063-c8972459baa3492548e8-2fa5-473e-9061-df8326d46e4c859e3c31-acbc-48dd-8535-ef2ce9385d70b272722b-ab35-4a09-9082-3cc31a0999b5492548e8-2fa5-473e-9061-df8326d46e4cec281dc5-ed57-4b8b-9bf5-212e314657aaadd1def4-fc64-4534-bbb0-d3ac07611a85ec281dc5-ed57-4b8b-9bf5-212e314657aanumberec281dc5-ed57-4b8b-9bf5-212e314657aatextec281dc5-ed57-4b8b-9bf5-212e314657aaaaa7ff33-69b5-4636-8766-e0556ee48bec2db56ca3-8def-419f-a3e3-ac8408915c69ec281dc5-ed57-4b8b-9bf5-212e314657aa51d7d624-e8bf-42b7-afdd-8d090b584865ec281dc5-ed57-4b8b-9bf5-212e314657aa9474db50-6935-47fa-b862-4aa1a49143f8ec281dc5-ed57-4b8b-9bf5-212e314657aa7fb1ba2f-64f1-417b-9b97-479efb954a9dec281dc5-ed57-4b8b-9bf5-212e314657aadf0b2b99-8c10-4cf4-9d2d-c3ccf515c96099e648cc-a136-471c-8424-19071c0fd9e773b8ddb4-b679-4697-b3c4-79ce833a9456232e4bda-508e-44c7-8adb-315ce0fab8af492548e8-2fa5-473e-9061-df8326d46e4cec281dc5-ed57-4b8b-9bf5-212e314657aaa6205e66-5e1f-4360-86a2-8f1325751c3c567674ba-270a-4107-ada5-1dae59125522ec281dc5-ed57-4b8b-9bf5-212e314657aa2fb01e3f-e275-43bc-83eb-579001da335b41c51e08-6c3e-4cbc-bc30-31936476aa7d492548e8-2fa5-473e-9061-df8326d46e4c6632ed99-8751-4c2a-ad00-3cc016300e08The name of the workbooktext6632ed99-8751-4c2a-ad00-3cc016300e08f8b84adb-3239-4125-af8d-4b1d02c950a66e7cb0ad-5910-4065-aab2-2919726bae39number06e7cb0ad-5910-4065-aab2-2919726bae394c75715c-7a4a-491b-804f-261ee86fcd956e7cb0ad-5910-4065-aab2-2919726bae39text21a53e34-8128-41cb-ad73-17250758ff237fa4c0ab-6c38-4a55-915a-48e7ce52997921a53e34-8128-41cb-ad73-17250758ff23text21a53e34-8128-41cb-ad73-17250758ff23b4f79caf-dea6-4a9a-95f0-0c05bea8b4859f7a4a91-68c9-4871-bb65-417e96cc4ad1Checks the instance and workbook values, throwing an exception if they are invalid. Params: - instance : Number : The integer value representing an Excel instance. The default value of zero represents the last activated instance. - Workbook Name : Text : The name of the workbook on the instance to check. An empty string represents the 'active' workbook. Exceptions: - Bad Handle : If the given handle did not correspond to an instance. - Workbook Not Found : If the given workbook did not exist on the specified instance.9f7a4a91-68c9-4871-bb65-417e96cc4ad116e7e153-e022-4c0b-9af2-ac69b52f855a9f7a4a91-68c9-4871-bb65-417e96cc4ad19f7a4a91-68c9-4871-bb65-417e96cc4ad1d4997ba5-8e1f-4585-a093-376eb725f14d492548e8-2fa5-473e-9061-df8326d46e4c9f7a4a91-68c9-4871-bb65-417e96cc4ad1bf3ac1a2-7f2a-4071-89c6-73cfa8f8c60d62e3710c-2e7e-4507-a49b-0009b3585ba39f7a4a91-68c9-4871-bb65-417e96cc4ad1Thrown when a workbook name was not found9f7a4a91-68c9-4871-bb65-417e96cc4ad1number09f7a4a91-68c9-4871-bb65-417e96cc4ad1The name of the workbooktext9f7a4a91-68c9-4871-bb65-417e96cc4ad1flagTrue9f7a4a91-68c9-4871-bb65-417e96cc4ad1b6c9fba5-0c8e-4e66-9cf2-8f2f1e5f6118-1 Then workbookfound = False Else Throw ex End If End Try]]>6e7cb0ad-5910-4065-aab2-2919726bae39e45f2d66-35c1-40fd-a729-754cfabbb5ab9f7a4a91-68c9-4871-bb65-417e96cc4ad121a53e34-8128-41cb-ad73-17250758ff238b526d9f-c7bd-4190-8c33-a6f5ad7982fa9f7a4a91-68c9-4871-bb65-417e96cc4ad16ccaae8b-c06f-45c8-8772-8352188814585f23862f-bb67-4712-ade2-d8d62befeb7b6ccaae8b-c06f-45c8-8772-835218881458number06ccaae8b-c06f-45c8-8772-835218881458text6ccaae8b-c06f-45c8-8772-83521888145852c31124-7463-40b9-8d24-9ffebe12e1676ccaae8b-c06f-45c8-8772-835218881458flagTrue6ccaae8b-c06f-45c8-8772-83521888145816f6c60c-721b-44be-9e97-b5b518e0f36068e0d10e-5b8a-4ccb-a42b-67192ce2ede16ccaae8b-c06f-45c8-8772-835218881458cf877504-31ed-4e77-b72f-b00469c37fc76e7cb0ad-5910-4065-aab2-2919726bae396ccaae8b-c06f-45c8-8772-835218881458d52e7a12-1a97-4bcf-9014-5a4ad93aa0549f7a4a91-68c9-4871-bb65-417e96cc4ad16ccaae8b-c06f-45c8-8772-835218881458d52e7a12-1a97-4bcf-9014-5a4ad93aa0546ccaae8b-c06f-45c8-8772-835218881458Note: CheckInstanceAndWorkbook is done as part of SaveWorkbook, so no need to do it again733c2840-8162-465a-a8f2-7d023087c369number0733c2840-8162-465a-a8f2-7d023087c369text6632ed99-8751-4c2a-ad00-3cc016300e08366f8bd4-fafd-47cc-98a3-0afb7d697fe99f7a4a91-68c9-4871-bb65-417e96cc4ad141a07606-d51b-4fe3-a076-7a77a4ca2cdeChecks if the given file exists. Params: - File name : Text : Path to the file to check Exceptions: - File Not Found : If the given file does not exist or is not a file.41a07606-d51b-4fe3-a076-7a77a4ca2cdee28c5aa8-d587-4390-843e-b97c32c2cdb841a07606-d51b-4fe3-a076-7a77a4ca2cde41a07606-d51b-4fe3-a076-7a77a4ca2cdetext41a07606-d51b-4fe3-a076-7a77a4ca2cdeflagFalse41a07606-d51b-4fe3-a076-7a77a4ca2cded43bfe27-76d7-4542-b7ad-ba696468713e41a07606-d51b-4fe3-a076-7a77a4ca2cded465101e-fa27-4434-8413-515e331d138911a4a0e7-8810-493b-9409-df70ca4dc5b241a07606-d51b-4fe3-a076-7a77a4ca2cde2fb01e3f-e275-43bc-83eb-579001da335bf308d1c5-88b0-455a-bff7-8163c95d1eab41a07606-d51b-4fe3-a076-7a77a4ca2cde733c2840-8162-465a-a8f2-7d023087c369b5d5c5b0-1e3b-438b-b988-6058174ec5ba733c2840-8162-465a-a8f2-7d023087c3693a854b87-0e5a-46dd-8181-a58f97555aa8733c2840-8162-465a-a8f2-7d023087c36963d363e1-c78b-4332-815c-06f9d6f7a7df9f7a4a91-68c9-4871-bb65-417e96cc4ad1733c2840-8162-465a-a8f2-7d023087c369text37a2442f-8e22-4749-8b44-4ef2980f28a637a2442f-8e22-4749-8b44-4ef2980f28a6number037a2442f-8e22-4749-8b44-4ef2980f28a6text37a2442f-8e22-4749-8b44-4ef2980f28a65346c305-4024-4d1d-8806-c1b20f16c10d37a2442f-8e22-4749-8b44-4ef2980f28a656c2259b-9d71-4364-bede-79b4af1e3e9637a2442f-8e22-4749-8b44-4ef2980f28a6982dd82e-af43-49cb-a4b1-58da1ccfeb339f7a4a91-68c9-4871-bb65-417e96cc4ad137a2442f-8e22-4749-8b44-4ef2980f28a6text0e031661-2f5e-4cb2-949b-97babe59ff819a734ecf-7e58-4aa4-b7ff-5aa4494ec6870e031661-2f5e-4cb2-949b-97babe59ff810e031661-2f5e-4cb2-949b-97babe59ff81text0e031661-2f5e-4cb2-949b-97babe59ff81text0e031661-2f5e-4cb2-949b-97babe59ff81ca24190a-a9cb-4c37-b5d2-78bcd838ef400e031661-2f5e-4cb2-949b-97babe59ff81a04a5ea1-798c-4659-ac77-0c966c305cbaed502669-4207-4c88-895d-8c58ec3215780e031661-2f5e-4cb2-949b-97babe59ff81number073b8ddb4-b679-4697-b3c4-79ce833a9456text8e22a2d9-d4c3-4fe0-bbf0-4788d1812d30Gets the current worksheet into a collection. This will read the worksheet and store the contents into the collection. The first row will be treated as the column names and will be used as the column names in the generated collection. Params: - handle : Number : The integer identifying the instance in which the worksheet resides. Default (0) indicates the current instance. - Workbook Name : Text : The name of the workbook on which the sheet resides. Default ("") indicates the active workbook on the instance. - Worksheet Name : Text : The name of the worksheet which is required as a collection. Default ("") indicates the active sheet within the workbook. Output: Data - Collection - The data from the worksheet. Exceptions: - Bad Handle : If the given handle did not correspond to an instance. - Workbook Not Found : If the given workbook did not exist on the specified instance. - Worksheet Not Found : If the specified worksheet does not exist on the specified workbook. Office 2013 onwards There are known issues when attempting to read and write data using the Excel VBO with the application set to run in background mode. These issues can be overcome by using the Show action8e22a2d9-d4c3-4fe0-bbf0-4788d1812d308e22a2d9-d4c3-4fe0-bbf0-4788d1812d30number08e22a2d9-d4c3-4fe0-bbf0-4788d1812d30text8e22a2d9-d4c3-4fe0-bbf0-4788d1812d3023c90658-57ef-456a-92fa-970b0161d0f88e22a2d9-d4c3-4fe0-bbf0-4788d1812d30b6d0da26-0322-4b43-b1d5-304466ff29fb8e22a2d9-d4c3-4fe0-bbf0-4788d1812d3036a8c859-cf71-4b54-b7ed-317997b945899f7a4a91-68c9-4871-bb65-417e96cc4ad18e22a2d9-d4c3-4fe0-bbf0-4788d1812d30text8e22a2d9-d4c3-4fe0-bbf0-4788d1812d30collection2fb01e3f-e275-43bc-83eb-579001da335btextfeb8ce9f-299e-4152-85a1-354a5f9d995cCloses all instances of excel which have been opened by this business object, either through "Create Instance" or "Open Instance" and which have not been discarded through "Close Instance" or "Release Instance"feb8ce9f-299e-4152-85a1-354a5f9d995c8f8060c8-cea7-41c9-93c1-b181ca345fa9feb8ce9f-299e-4152-85a1-354a5f9d995cfeb8ce9f-299e-4152-85a1-354a5f9d995c85215f92-002d-4d9c-8fe7-652c149d02060b5de6c6-ed9a-443d-95b8-142dd521120eSearches for the next empty cell in the direction given. This can either activate that cell before returning, or just return the cell reference while leaving the active cell as it was. Params: - handle : Number : The integer handle identifying the Excel instance to use. The default of zero indicates the 'current' instance. - Direction : Text : The direction in which to go, this should start with "U", "D", "L" or "R" (not case-sensitive) - the rest of the string is ignored, so you can use "Up", "DOWN" "left" and, indeed, "r" - Activate Cell? : Flag : True to activate the found cell, False to just return the reference. Default is False. Returns: - Cell Reference : Text : The cell ID which represents the next empty cell in the required direction. This will be blank if no empty cell was found in the given direction. Exceptions: Invalid Direction Parameter : If the given direction parameter was invalid - ie. did not start with one of the (case-insensitive) letters "U", "D", "L" or "R".0b5de6c6-ed9a-443d-95b8-142dd521120eea536eb5-62b7-4b15-b0b9-0c54154146920b5de6c6-ed9a-443d-95b8-142dd521120e0b5de6c6-ed9a-443d-95b8-142dd521120etext0b5de6c6-ed9a-443d-95b8-142dd521120etext0b5de6c6-ed9a-443d-95b8-142dd521120eDirection must start with one of the following: - U : Indicates 'up' - D : Indicates 'down' - L : Indicates 'left' - R : Indicates 'right' Any other value (including empty text) is invalide8cca858-4b46-40a0-81fc-3112398c4a42382555c6-554f-465d-bbac-43e5b0ec06ed0b5de6c6-ed9a-443d-95b8-142dd521120e0b5de6c6-ed9a-443d-95b8-142dd521120ea47f3c07-957d-4909-bc43-4c56e5f58ae60b5de6c6-ed9a-443d-95b8-142dd521120enumber017f8ab72-203a-42d4-a59b-a073ccd57bb0Gets the formatted value of the desired cell. This will apply any formatting which is in place in the specified cell before outputting the value.17f8ab72-203a-42d4-a59b-a073ccd57bb029427d7f-a2d9-4b65-b6c4-773881bd285d17f8ab72-203a-42d4-a59b-a073ccd57bb017f8ab72-203a-42d4-a59b-a073ccd57bb0text17f8ab72-203a-42d4-a59b-a073ccd57bb0text17f8ab72-203a-42d4-a59b-a073ccd57bb0722e3ab7-97b7-4cd6-886e-53bf4ac022ec17f8ab72-203a-42d4-a59b-a073ccd57bb0number0f743df98-2e69-4559-89b6-32ef6637618dSplits the specified worksheet into separate workbooks, creating a new sheet on each one and copying a subset of rows across to it. Params: - handle : Number : The integer representing the Excel instance - 0 represents the 'active' excel instance. - Rows per sheet : Number : The number of rows which should be copied into each separate workbook. - Workbook Name : Text : The name of the workbook from which the sheet should be split. "" indicates the active workbook on the instance. - Worksheet Name : Text : The name of the worksheet from which the data should be split. "" indicates the active worksheet on the instance. - Path : Text : The directory in which the resultant workbooks should be saved. - No Title Row : Flag : True to indicate that the first row should *not* be used as a title row and copied across each of the generated workbooks. Exceptions: - Bad Handle : If the given handle did not correspond to an instance. - Workbook Not Found : If the given workbook did not exist on the specified instance. - File Not Found : If the given path did not exist or was not a directoryf743df98-2e69-4559-89b6-32ef6637618df743df98-2e69-4559-89b6-32ef6637618dee1e1e11-a16a-4060-9ea0-0848320dfbaff743df98-2e69-4559-89b6-32ef6637618dnumber0f743df98-2e69-4559-89b6-32ef6637618dnumberf743df98-2e69-4559-89b6-32ef6637618dtextf743df98-2e69-4559-89b6-32ef6637618dtextf743df98-2e69-4559-89b6-32ef6637618d359dbb2d-d57f-48c1-9c7f-1d22ef0940369f7a4a91-68c9-4871-bb65-417e96cc4ad1f743df98-2e69-4559-89b6-32ef6637618d5cb56c9a-aa29-4ed4-84e1-9a65976ba50ff743df98-2e69-4559-89b6-32ef6637618dflagf743df98-2e69-4559-89b6-32ef6637618dtextf743df98-2e69-4559-89b6-32ef6637618dflagf743df98-2e69-4559-89b6-32ef6637618daa8bb9c5-c392-43d5-b8fb-6a6308c40ad66b2c84c0-9ceb-4f05-8746-5dfbf7ed3733f743df98-2e69-4559-89b6-32ef6637618ddc139ac7-b971-481e-9528-b1521ae9fc92Counts the number of rows in a worksheet.dc139ac7-b971-481e-9528-b1521ae9fc92dc139ac7-b971-481e-9528-b1521ae9fc9235173317-eeae-482b-8a2a-ea46406fcb4fdc139ac7-b971-481e-9528-b1521ae9fc92aa3ba555-86e5-42ae-bdb5-b614c46bdaf99f7a4a91-68c9-4871-bb65-417e96cc4ad1dc139ac7-b971-481e-9528-b1521ae9fc92555b5c2d-9106-444b-9c96-f1ff4699a988dc139ac7-b971-481e-9528-b1521ae9fc92number0dc139ac7-b971-481e-9528-b1521ae9fc92textdc139ac7-b971-481e-9528-b1521ae9fc92textdc139ac7-b971-481e-9528-b1521ae9fc92numberddb3c741-0c59-4ac8-a260-258fb8eb1674Checks if the given workbook is read only or not. Params: - handle : Number : The integer identifying the excel instance to check. Default (0) indicates the current instance. - Workbook Name : Text : The name of the workbook to be checked. Default ("") indicates the active workbook on the given instance. Output: Read Only? : Flag : True to indicate that the workbook is read only; False to indicate that it is writable. Exceptions: - Bad Handle : If the given handle did not correspond to an instance. - Workbook Not Found : If the given workbook did not exist on the specified instance.ddb3c741-0c59-4ac8-a260-258fb8eb167491487aa9-0d65-4895-940d-c4fed2212eecddb3c741-0c59-4ac8-a260-258fb8eb1674ddb3c741-0c59-4ac8-a260-258fb8eb1674number0ddb3c741-0c59-4ac8-a260-258fb8eb1674textddb3c741-0c59-4ac8-a260-258fb8eb1674e412638c-10ff-49e6-ae71-6b5c86f40ddb9f7a4a91-68c9-4871-bb65-417e96cc4ad1ddb3c741-0c59-4ac8-a260-258fb8eb1674flagddb3c741-0c59-4ac8-a260-258fb8eb16741e8fe949-d784-437f-a724-b5003709f18cab6c7fcd-9997-4c5c-9ff1-2dcb5879975ad2814bb7-61fc-4b4f-8fd9-2dd9f79c06bafeb8ce9f-299e-4152-85a1-354a5f9d995c268628ce-c0f3-492a-be5c-87b432e16d1dShows a window attached to the instance identified. Params: - handle : Number : The handle identifying the excel instance to show. The default of zero shows the currently active instance. Exceptions: - Bad Handle : If the given handle did not correspond to an instance. 268628ce-c0f3-492a-be5c-87b432e16d1d6562ae8e-f16f-4f89-8787-7884cc6a57db268628ce-c0f3-492a-be5c-87b432e16d1d268628ce-c0f3-492a-be5c-87b432e16d1d7785ca63-e0a8-40c6-940b-0d9e73944b25492548e8-2fa5-473e-9061-df8326d46e4cef10421c-e1ff-4227-b367-c53059a6766dHides the window attached to the instance identified. Params: - handle : Number : The handle identifying the excel instance to hide. The default of zero shows the currently active instance. Exceptions: - Bad Handle : If the given handle did not correspond to an instance. 268628ce-c0f3-492a-be5c-87b432e16d1d565f4f77-b276-4735-9c18-000ce13946a7268628ce-c0f3-492a-be5c-87b432e16d1dnumber0ef10421c-e1ff-4227-b367-c53059a6766debc908b3-4501-4500-9648-a35ebbabdddaef10421c-e1ff-4227-b367-c53059a6766def10421c-e1ff-4227-b367-c53059a6766d1cc2d38f-3783-42f7-8b75-78243c367fb3492548e8-2fa5-473e-9061-df8326d46e4cef10421c-e1ff-4227-b367-c53059a6766d6106570f-43e1-4a42-9f67-c8f2522a910cef10421c-e1ff-4227-b367-c53059a6766dnumber081b9e5cd-a91d-4a33-bc23-1602c5fe878fSave the current workbook using the given file name. This is the equivalent of calling the 'Save Workbook As' action with the default values for 'handle' (0) and 'Workbook Name' ("") Params : - File name : Text : The path and name of the file to which the workbook should be saved. Output : - New Workbook Name : Text : The new name with which the workbook is identified within the excel instance.81b9e5cd-a91d-4a33-bc23-1602c5fe878fec111fc5-c308-4507-8b78-8fa3a8cfa13681b9e5cd-a91d-4a33-bc23-1602c5fe878f81b9e5cd-a91d-4a33-bc23-1602c5fe878ftext81b9e5cd-a91d-4a33-bc23-1602c5fe878facb62e2e-bb38-4f8b-8ceb-61ec851d898621a53e34-8128-41cb-ad73-17250758ff23dc33871a-9aec-4a29-b811-3ab205ddf41eHere for backward compatibility - exits the current instance of Excel without saving any changes.dc33871a-9aec-4a29-b811-3ab205ddf41efc97b188-f45e-46f4-a66e-f592917cabb1dc33871a-9aec-4a29-b811-3ab205ddf41edc33871a-9aec-4a29-b811-3ab205ddf41ec6c7615b-e18b-42aa-9e83-88884e01e23b6ec3006a-6553-4526-b522-32526c4aa3cc76d598ed-b254-4c1e-8004-d4f2928b1450Saves the current workbook using the workbook name as the file name. This is the equivalent of calling the Save Workbook action with the default values for 'handle' (0) and 'Workbook Name' ("") Exceptions: - Bad Handle : If there is no active instance. - Workbook Not Found : If there is no active workbook on the instance.76d598ed-b254-4c1e-8004-d4f2928b14500d75fe69-c13e-4536-a444-0f915cb6844a76d598ed-b254-4c1e-8004-d4f2928b145076d598ed-b254-4c1e-8004-d4f2928b1450097cd2c8-6d4c-42dc-a542-6e1f1e5a1b7e6e7cb0ad-5910-4065-aab2-2919726bae39733c2840-8162-465a-a8f2-7d023087c369flagFalsee58a482d-f349-4f40-9b03-a903156ce1b5Here for back-compatability. Should be considered deprecated and calls should be replaced by "Get Worksheet As Collection", but right now this gets the active worksheet on the active workbook in the current instance of Excel into a collection. It is the equivalent of calling GetWorksheet As Collection with all the default input values. Output: Data : Collection : The active sheet's data in a collection.e58a482d-f349-4f40-9b03-a903156ce1b5a3308402-1446-47b9-9e40-cc105a30db14e58a482d-f349-4f40-9b03-a903156ce1b5e58a482d-f349-4f40-9b03-a903156ce1b5collectione58a482d-f349-4f40-9b03-a903156ce1b5aa04eeb6-e87c-4392-b7d2-52e4eb0b28af8e22a2d9-d4c3-4fe0-bbf0-4788d1812d30a031ba9a-3bd2-49b3-8d9b-6f982b34eb3cSets the number format at the given cell to that specified. Oddly, this *doesn't* set the currently active cell.a031ba9a-3bd2-49b3-8d9b-6f982b34eb3c6ed5e96a-3604-426e-b112-0be4f4f4b9a8a031ba9a-3bd2-49b3-8d9b-6f982b34eb3ctexta031ba9a-3bd2-49b3-8d9b-6f982b34eb3ctexta031ba9a-3bd2-49b3-8d9b-6f982b34eb3cnumber09b535bfc-4f80-4d7c-88b5-49b941688030Sets a cell format for the currently active cell.9b535bfc-4f80-4d7c-88b5-49b941688030a8dd2eb1-5144-4f87-b5fc-87dc562df87531ed0ec6-5d0f-4f9e-90c8-1fb7e73e5d5cGets a reference to the currently active cell on the given instance.31ed0ec6-5d0f-4f9e-90c8-1fb7e73e5d5c0f68d429-d637-41bc-ab1c-3890e4e57da631ed0ec6-5d0f-4f9e-90c8-1fb7e73e5d5c31ed0ec6-5d0f-4f9e-90c8-1fb7e73e5d5cnumber031ed0ec6-5d0f-4f9e-90c8-1fb7e73e5d5ctext31ed0ec6-5d0f-4f9e-90c8-1fb7e73e5d5c0749822c-e521-461c-a3cc-23f5a695980b492548e8-2fa5-473e-9061-df8326d46e4c31ed0ec6-5d0f-4f9e-90c8-1fb7e73e5d5cde4f91e6-efde-42cd-9efa-700811c74c150b5de6c6-ed9a-443d-95b8-142dd521120eflagFalse0b5de6c6-ed9a-443d-95b8-142dd521120ee17eb74e-6764-4980-a96c-dd500de1318165e26d12-b37e-4df9-a00b-07340967e5b20b5de6c6-ed9a-443d-95b8-142dd521120e23c196fc-bba5-4cc0-8e36-c8d6db96e360ed502669-4207-4c88-895d-8c58ec3215780b5de6c6-ed9a-443d-95b8-142dd521120e65e26d12-b37e-4df9-a00b-07340967e5b2eaafa766-b0ce-4891-8e6e-de12d6283ae0Activates the next empty cell that can be found on the left of the active cell.eaafa766-b0ce-4891-8e6e-de12d6283ae010b0cef9-77af-42e0-b42e-6fc1870587a4eaafa766-b0ce-4891-8e6e-de12d6283ae0eaafa766-b0ce-4891-8e6e-de12d6283ae063d50db2-a5f9-48a9-ae16-9a801712b53c0b5de6c6-ed9a-443d-95b8-142dd521120eeaafa766-b0ce-4891-8e6e-de12d6283ae0number0eaafa766-b0ce-4891-8e6e-de12d6283ae0textd2d4c80d-3058-4d60-8e96-7b9b12f9ae58Activates the next empty cell that can be found on the right of the active cell.5a78c1a5-e339-4f76-9203-d180bee31770Activates the next empty cell that can be found above the active cell.82492075-b486-413c-9bd4-05eba466843eActivates the next empty cell that can be found below the active cell.d2d4c80d-3058-4d60-8e96-7b9b12f9ae58782731b8-b7fb-4bec-8b35-b0438a5d8cecd2d4c80d-3058-4d60-8e96-7b9b12f9ae58d2d4c80d-3058-4d60-8e96-7b9b12f9ae58650fc617-bcbd-4d39-b835-748d94773ec60b5de6c6-ed9a-443d-95b8-142dd521120ed2d4c80d-3058-4d60-8e96-7b9b12f9ae58number0d2d4c80d-3058-4d60-8e96-7b9b12f9ae58text5a78c1a5-e339-4f76-9203-d180bee31770c01227ef-86b5-48c4-8cbc-6db80b1df2c65a78c1a5-e339-4f76-9203-d180bee317705a78c1a5-e339-4f76-9203-d180bee31770c7e480b2-caf7-430d-b419-49c70c452c4f0b5de6c6-ed9a-443d-95b8-142dd521120e5a78c1a5-e339-4f76-9203-d180bee31770number05a78c1a5-e339-4f76-9203-d180bee31770text82492075-b486-413c-9bd4-05eba466843e072dae62-8d0d-4522-904c-6d253988874d82492075-b486-413c-9bd4-05eba466843e82492075-b486-413c-9bd4-05eba466843eb90c78f9-6a37-4db4-b30f-ac96d30c730c0b5de6c6-ed9a-443d-95b8-142dd521120e82492075-b486-413c-9bd4-05eba466843enumber082492075-b486-413c-9bd4-05eba466843etext9b535bfc-4f80-4d7c-88b5-49b941688030number0a031ba9a-3bd2-49b3-8d9b-6f982b34eb3ca031ba9a-3bd2-49b3-8d9b-6f982b34eb3c9cbae4e4-6b41-4a38-a05e-0dc4df5d25a3a031ba9a-3bd2-49b3-8d9b-6f982b34eb3c111cd676-ae8c-4b83-9bb1-5567fe0735bd6632ed99-8751-4c2a-ad00-3cc016300e089b535bfc-4f80-4d7c-88b5-49b94168803022a903ea-24b0-4f4b-ad3d-590aa6ab3d9731ed0ec6-5d0f-4f9e-90c8-1fb7e73e5d5c9b535bfc-4f80-4d7c-88b5-49b941688030text9b535bfc-4f80-4d7c-88b5-49b9416880302776814b-74bd-42b3-b282-80a156b933cda031ba9a-3bd2-49b3-8d9b-6f982b34eb3c9b535bfc-4f80-4d7c-88b5-49b941688030text9b535bfc-4f80-4d7c-88b5-49b94168803039374841-edab-4ea9-86d9-5f2fff3f1a5fSets the window size of the specified instance.39374841-edab-4ea9-86d9-5f2fff3f1a5f3d73ff94-84e6-4e12-947e-76d14884579c39374841-edab-4ea9-86d9-5f2fff3f1a5f904eeb0d-e6a2-408b-99b5-621307252585Moves the specified instance's window to the required location.904eeb0d-e6a2-408b-99b5-6213072525853f663a38-1c01-438f-a02a-aa56ded74764904eeb0d-e6a2-408b-99b5-621307252585d4998c94-d432-4713-81a5-e902535089c6Minimizes / maximizes / restores the window attached to the specified excel instance. Exceptions: Invalid Input Parameter : If the given state was not "normal" and did not start with either "min" or "max"b0b877cd-07ce-4df1-a63b-89fa4d315c4cMoves a specified number of rows and columns from the currently active cell and returns the new cell reference. If the resultant cell reference is the same as the active cell before this action was called, this action has 'failed'. This is usually because the active cell is too close to a boundary.b0b877cd-07ce-4df1-a63b-89fa4d315c4cfdbdccce-2959-40cb-b4b4-d53556dd97a1efe9d5bd-c8f0-42e1-aadc-6c7b0bfdd92cCloses the current workbook on the current excel instance. This is the equivalent of calling the 'Close Workbook' action with the default values for 'handle' (0) and 'Workbook Name' ("")efe9d5bd-c8f0-42e1-aadc-6c7b0bfdd92c9dbc3256-ac5d-4bb3-880c-a4aaaaf33bc5efe9d5bd-c8f0-42e1-aadc-6c7b0bfdd92cefe9d5bd-c8f0-42e1-aadc-6c7b0bfdd92c160a79e4-be77-47f7-b8f2-271a170a762f6ccaae8b-c06f-45c8-8772-835218881458efe9d5bd-c8f0-42e1-aadc-6c7b0bfdd92cnumber0b0b877cd-07ce-4df1-a63b-89fa4d315c4cnumberb0b877cd-07ce-4df1-a63b-89fa4d315c4cnumberb0b877cd-07ce-4df1-a63b-89fa4d315c4cb0b877cd-07ce-4df1-a63b-89fa4d315c4c50344da8-13a3-4d20-899b-bfd3b5507681b0b877cd-07ce-4df1-a63b-89fa4d315c4c30a3c6c6-5324-4fe2-a0b2-3026f1a5e3796632ed99-8751-4c2a-ad00-3cc016300e08b0b877cd-07ce-4df1-a63b-89fa4d315c4cnumber0b0b877cd-07ce-4df1-a63b-89fa4d315c4ctext39374841-edab-4ea9-86d9-5f2fff3f1a5fnumber039374841-edab-4ea9-86d9-5f2fff3f1a5fnumber39374841-edab-4ea9-86d9-5f2fff3f1a5fnumber39374841-edab-4ea9-86d9-5f2fff3f1a5f82380eea-db5c-47b3-9a94-2e19338cca95492548e8-2fa5-473e-9061-df8326d46e4c39374841-edab-4ea9-86d9-5f2fff3f1a5fa952606a-38e1-4585-821a-7395c94d70cb904eeb0d-e6a2-408b-99b5-621307252585number904eeb0d-e6a2-408b-99b5-621307252585number904eeb0d-e6a2-408b-99b5-621307252585number0904eeb0d-e6a2-408b-99b5-62130725258512d30538-38bf-4f9b-a180-41d0b836854c492548e8-2fa5-473e-9061-df8326d46e4c904eeb0d-e6a2-408b-99b5-6213072525855b24c512-8930-4c34-9083-7834083ab65cd4998c94-d432-4713-81a5-e902535089c60f8fc913-9174-4304-823f-d18ffae7217ad4998c94-d432-4713-81a5-e902535089c6d4998c94-d432-4713-81a5-e902535089c6number0d4998c94-d432-4713-81a5-e902535089c6458615b7-ea0b-4d96-9dce-87099d6e5950492548e8-2fa5-473e-9061-df8326d46e4cd4998c94-d432-4713-81a5-e902535089c6ffe49fc1-13a2-4e84-a649-bd692ef7752ad4998c94-d432-4713-81a5-e902535089c6Checks if the given state is a valid value3db578f3-47a7-4150-9ccc-6f9a16dbe73fc0e54c49-a9fc-48c4-a54e-2b85581d4ba5d4998c94-d432-4713-81a5-e902535089c6textd4998c94-d432-4713-81a5-e902535089c681b9e5cd-a91d-4a33-bc23-1602c5fe878ftext21a53e34-8128-41cb-ad73-17250758ff23The new workbook name assigned by Excel after saving the booktext81b9e5cd-a91d-4a33-bc23-1602c5fe878fnumber04fb11e41-83d8-461d-8c0d-04cdd2f670e2Removes an instance from this business object *without* closing or quitting it - after running this action, the instance in question will not be accessible by this object unless it is re-attached to using 'Open Instance'. Params: - handle : Number : The handle of the instance to be released. The default of 0 indicates the currently active instance. Note that following the current instance being released, the current instance will not be set. Exceptions: - Bad Handle : If the given handle did not correspond to an instance. 4fb11e41-83d8-461d-8c0d-04cdd2f670e21d0738a9-7841-446d-b3ed-1a4bafeccc1b4fb11e41-83d8-461d-8c0d-04cdd2f670e24fb11e41-83d8-461d-8c0d-04cdd2f670e2number04fb11e41-83d8-461d-8c0d-04cdd2f670e22e67a2b9-10bf-4d4d-9bd9-db68edaf7662492548e8-2fa5-473e-9061-df8326d46e4c4fb11e41-83d8-461d-8c0d-04cdd2f670e2dc556131-4dde-459f-9af8-8c854fcae760859e3c31-acbc-48dd-8535-ef2ce9385d70Don't need to anything - a side-effect of the check is to set the current instance... makes it simple.7ad81501-44a1-48ab-94fd-9b2c35ed20b8Back-compatible link to 'Open Instance'. This opens the first running instance of Excel found and links to it in this object. Returns: - handle : Number : An integer with which the instance opened can be identified. - Enable Events : Flag : Indicates that events should be enabled / disabled on the attached instance - defaulted to True7ad81501-44a1-48ab-94fd-9b2c35ed20b8ba67509b-7301-4ce1-a467-e9970249b3927ad81501-44a1-48ab-94fd-9b2c35ed20b87ad81501-44a1-48ab-94fd-9b2c35ed20b8number7ad81501-44a1-48ab-94fd-9b2c35ed20b8c74db74c-8822-4391-8593-d9919e357a5bec281dc5-ed57-4b8b-9bf5-212e314657aa2b3544ad-af96-4f40-9b50-16dfbe0600f1Back compatible link to 'Open instance' - attaches to the excel instance containing the current workbook. Note that if the instance containing the workbook could not be found, a new instance will be created. Params: - File name : Text : The name of the file in the instance that should be opened. - Enable Events : Flag : Indicates that events should be enabled / disabled on the attached instance - defaulted to True Returns: - handle : Number : The integer that can be used to reference this instance later.2b3544ad-af96-4f40-9b50-16dfbe0600f14a719c51-85b9-4750-9593-bf0e3166edfc2b3544ad-af96-4f40-9b50-16dfbe0600f12b3544ad-af96-4f40-9b50-16dfbe0600f1number2b3544ad-af96-4f40-9b50-16dfbe0600f1ba3c2775-b5ac-44a8-be6b-05befaea619bec281dc5-ed57-4b8b-9bf5-212e314657aa2b3544ad-af96-4f40-9b50-16dfbe0600f1text0e031661-2f5e-4cb2-949b-97babe59ff81bed65abf-b1ad-4f7e-83be-c8a96e3ea16239135f99-dd54-4a2b-bff2-555714753a6d0e031661-2f5e-4cb2-949b-97babe59ff81b98f8e72-e995-42a4-b3f9-df0acf2a59440e031661-2f5e-4cb2-949b-97babe59ff81a04a5ea1-798c-4659-ac77-0c966c305cba17f8ab72-203a-42d4-a59b-a073ccd57bb094dc11fe-505e-4544-a26b-80d3d88d0951ed502669-4207-4c88-895d-8c58ec32157817f8ab72-203a-42d4-a59b-a073ccd57bb0e743b184-cb2f-43cb-83c1-b99654286d3d250bb1db-ca8e-4edb-b9a4-52fa3926182317f8ab72-203a-42d4-a59b-a073ccd57bb0dea637ce-5933-4805-94a4-f2bbd9b99d0b17f8ab72-203a-42d4-a59b-a073ccd57bb094dc11fe-505e-4544-a26b-80d3d88d0951d96215cc-750e-4616-8852-1d4d44a9f21bGets the value of the currently active cell.d96215cc-750e-4616-8852-1d4d44a9f21baf8aab5e-4539-4acc-a5cc-1bd632282587d96215cc-750e-4616-8852-1d4d44a9f21bd96215cc-750e-4616-8852-1d4d44a9f21b73e8408e-ff97-4d9f-b0e0-5a0e844b731c0e031661-2f5e-4cb2-949b-97babe59ff81d96215cc-750e-4616-8852-1d4d44a9f21bnumber0d96215cc-750e-4616-8852-1d4d44a9f21btextf78a5f80-c2d5-4e9b-ae08-a56fb8007b18Creates a new worksheet in the specified workbook with the given name. If a sheet with the given name already exists, this will activate that sheet. Params: - handle : Number : The number identifying the instance required. - Workbook Name : Text : The name of the workbook to add it to. An empty string (the default) indicates the active workbook in the instance. - Worksheet Name : Text : The name of the worksheet that is required. Note that if the name matches a worksheet already in the workbook a new worksheet will not be created, but that worksheet will be activated. Exceptions: - Bad Handle : If the given handle did not correspond to an instance. - Workbook Not Found : If the given workbook did not exist on the specified instance.f78a5f80-c2d5-4e9b-ae08-a56fb8007b1889240340-492e-44ab-9fed-c64a6d3fffdff78a5f80-c2d5-4e9b-ae08-a56fb8007b18f78a5f80-c2d5-4e9b-ae08-a56fb8007b185d624e42-813e-467d-bda1-ebb3e410045c733c2840-8162-465a-a8f2-7d023087c369f78a5f80-c2d5-4e9b-ae08-a56fb8007b18numberf78a5f80-c2d5-4e9b-ae08-a56fb8007b18textf78a5f80-c2d5-4e9b-ae08-a56fb8007b18text0dbe03a0-e259-47ab-bee7-7dec41ae32e7Writes the given collection into the specified sheet.0dbe03a0-e259-47ab-bee7-7dec41ae32e7a3a318c6-e218-4e78-a818-1673f90541b30dbe03a0-e259-47ab-bee7-7dec41ae32e70dbe03a0-e259-47ab-bee7-7dec41ae32e7number0dbe03a0-e259-47ab-bee7-7dec41ae32e7collection0dbe03a0-e259-47ab-bee7-7dec41ae32e7text0dbe03a0-e259-47ab-bee7-7dec41ae32e7text0dbe03a0-e259-47ab-bee7-7dec41ae32e7flag0dbe03a0-e259-47ab-bee7-7dec41ae32e7f2ebff4d-5325-45e8-945d-73006f5bd7ce733c2840-8162-465a-a8f2-7d023087c3690dbe03a0-e259-47ab-bee7-7dec41ae32e78819df51-0132-421d-baae-b24b5082f1310dbe03a0-e259-47ab-bee7-7dec41ae32e7textec281dc5-ed57-4b8b-9bf5-212e314657aa108c176a-92d1-4f50-b460-ac6a3f0dac25ec281dc5-ed57-4b8b-9bf5-212e314657aaadd1def4-fc64-4534-bbb0-d3ac07611a856ec3006a-6553-4526-b522-32526c4aa3ccflagFalsed4998c94-d432-4713-81a5-e902535089c64686174e-a845-4f2b-9a0a-70325a2df399733c2840-8162-465a-a8f2-7d023087c369flag733c2840-8162-465a-a8f2-7d023087c369ddfe7f54-b5c2-410a-8a5d-3c2b52de95509bc52652-698b-46ca-ba0d-ebb170432963733c2840-8162-465a-a8f2-7d023087c36937a2442f-8e22-4749-8b44-4ef2980f28a6flag37a2442f-8e22-4749-8b44-4ef2980f28a66b35d569-0eb2-4c01-bb88-e5f7c41bde81091e0364-11db-49d4-8e94-8f5f9396fa9c37a2442f-8e22-4749-8b44-4ef2980f28a68e22a2d9-d4c3-4fe0-bbf0-4788d1812d30cf5b0880-2cac-4221-946a-e4e3d7f0bc997e8fce63-9130-4c0f-baea-ea8be793c57d8e22a2d9-d4c3-4fe0-bbf0-4788d1812d308e22a2d9-d4c3-4fe0-bbf0-4788d1812d30flagf743df98-2e69-4559-89b6-32ef6637618d859597f9-d048-46a3-bf99-2f3f6588c2c52b8672dd-8330-4c2d-a522-9f12c9e27ba2f743df98-2e69-4559-89b6-32ef6637618df743df98-2e69-4559-89b6-32ef6637618dflag92799072-140a-4621-89cd-2da12475dcdaGets the current worksheet into a collection. This will read the worksheet and store the contents into the collection. The offset function allows a starting cell to be specified.92799072-140a-4621-89cd-2da12475dcda92799072-140a-4621-89cd-2da12475dcdanumber092799072-140a-4621-89cd-2da12475dcdatext92799072-140a-4621-89cd-2da12475dcda8f50a819-e470-4c0e-97d5-08bd0f70568292799072-140a-4621-89cd-2da12475dcda164e0a2b-6c31-48ce-8172-7fb4edd3dbb392799072-140a-4621-89cd-2da12475dcdaa755a822-d485-45ea-8d7d-426646b4aec09f7a4a91-68c9-4871-bb65-417e96cc4ad192799072-140a-4621-89cd-2da12475dcdatext92799072-140a-4621-89cd-2da12475dcdacollection69db5cf5-4908-49c7-9027-8f48e26e5b27Enables or disables the events on the specified excel instance.69db5cf5-4908-49c7-9027-8f48e26e5b2768483479-6865-4fd5-9a77-f4392c4ade9e69db5cf5-4908-49c7-9027-8f48e26e5b2769db5cf5-4908-49c7-9027-8f48e26e5b2721682417-b503-44b4-92f2-a3c80b4fad14492548e8-2fa5-473e-9061-df8326d46e4c69db5cf5-4908-49c7-9027-8f48e26e5b27flagTrue69db5cf5-4908-49c7-9027-8f48e26e5b273969dd45-fdea-4671-879e-461a56f312be69db5cf5-4908-49c7-9027-8f48e26e5b27numberec281dc5-ed57-4b8b-9bf5-212e314657aaflagTrueec281dc5-ed57-4b8b-9bf5-212e314657aa51d7d624-e8bf-42b7-afdd-8d090b584865ec281dc5-ed57-4b8b-9bf5-212e314657aa754832af-1144-48ff-8ab0-bb6c86d3f78e69db5cf5-4908-49c7-9027-8f48e26e5b277ad81501-44a1-48ab-94fd-9b2c35ed20b8flagTrue2b3544ad-af96-4f40-9b50-16dfbe0600f1flagTrue99e648cc-a136-471c-8424-19071c0fd9e7flagTrue99e648cc-a136-471c-8424-19071c0fd9e7d337a2cf-1121-4619-a1b1-f7f19bea974e69db5cf5-4908-49c7-9027-8f48e26e5b272fb01e3f-e275-43bc-83eb-579001da335bflagTrue2fb01e3f-e275-43bc-83eb-579001da335b18a306bf-d323-4c4e-83b5-4b226773161c69db5cf5-4908-49c7-9027-8f48e26e5b2792799072-140a-4621-89cd-2da12475dcdatextbecd6faa-f5c0-4d3a-a48a-cb54d3aa8909Gets the name of the worksheets.becd6faa-f5c0-4d3a-a48a-cb54d3aa8909becd6faa-f5c0-4d3a-a48a-cb54d3aa89099bc4bc33-6a3a-43e0-86e0-7b209978508abecd6faa-f5c0-4d3a-a48a-cb54d3aa8909bbd37070-c589-4f9c-8d03-11f2982c59f49f7a4a91-68c9-4871-bb65-417e96cc4ad1becd6faa-f5c0-4d3a-a48a-cb54d3aa8909ef85b34d-5145-4f90-96a4-0f1abc4c4889becd6faa-f5c0-4d3a-a48a-cb54d3aa8909number0becd6faa-f5c0-4d3a-a48a-cb54d3aa8909textbecd6faa-f5c0-4d3a-a48a-cb54d3aa8909collectioneacc4634-9985-4a1d-9773-8f79928708eeChecks if a worksheet exists in a workbook.eacc4634-9985-4a1d-9773-8f79928708eeeacc4634-9985-4a1d-9773-8f79928708eeb4bad8df-ac04-4c0f-88cf-21bd3dc6707aeacc4634-9985-4a1d-9773-8f79928708eenumber0eacc4634-9985-4a1d-9773-8f79928708eetexteacc4634-9985-4a1d-9773-8f79928708ee3124d4f1-6d19-450e-8d71-01e6c2cac8d9becd6faa-f5c0-4d3a-a48a-cb54d3aa8909eacc4634-9985-4a1d-9773-8f79928708eecollectioneacc4634-9985-4a1d-9773-8f79928708ee0e40b339-b952-445b-a957-6d2d0a1bdbac7adde929-95a8-4bdb-8362-2dcf58807cb2ForEachWorksheet Nameseacc4634-9985-4a1d-9773-8f79928708eeaea2b1ba-e24b-4929-a0be-bc2ad811f2777adde929-95a8-4bdb-8362-2dcf58807cb2eacc4634-9985-4a1d-9773-8f79928708eetexteacc4634-9985-4a1d-9773-8f79928708eef284f63f-fccf-4df8-ab7d-d7ef8aca1fb127d57e09-d2fa-496d-a5c6-d382be881ad1eacc4634-9985-4a1d-9773-8f79928708ee54725352-a686-4ebc-88d8-80fa81af39bceacc4634-9985-4a1d-9773-8f79928708eeflageacc4634-9985-4a1d-9773-8f79928708ee54725352-a686-4ebc-88d8-80fa81af39bcf92e2a34-0aa8-4ca1-b4ac-5dce2318ec5eExceptions Office 2013 onwards There are known issues when attempting to read and write data using the Excel VBO with the application set to run in background mode. These issues can be overcome by using the Show actionf92e2a34-0aa8-4ca1-b4ac-5dce2318ec5ef92e2a34-0aa8-4ca1-b4ac-5dce2318ec5enumber0f92e2a34-0aa8-4ca1-b4ac-5dce2318ec5etextf92e2a34-0aa8-4ca1-b4ac-5dce2318ec5e58d3ca4f-4467-492d-b85a-fd7ab4271110f92e2a34-0aa8-4ca1-b4ac-5dce2318ec5e6f2ee451-c914-4c38-8e19-4d3e3a519dfdf92e2a34-0aa8-4ca1-b4ac-5dce2318ec5etextf92e2a34-0aa8-4ca1-b4ac-5dce2318ec5ecollectionf92e2a34-0aa8-4ca1-b4ac-5dce2318ec5etextf92e2a34-0aa8-4ca1-b4ac-5dce2318ec5etext92799072-140a-4621-89cd-2da12475dcdaflagTrue67651307-0389-47bf-ae8d-fd94364e808fRemoves blank rows in the active excel workbook. The entire row must consist of blank cells.67651307-0389-47bf-ae8d-fd94364e808f1e0e5735-5bc9-43dc-85c9-4e8735def67f67651307-0389-47bf-ae8d-fd94364e808f67651307-0389-47bf-ae8d-fd94364e808f4fa6c603-9d6a-4077-ba95-9d213394ee066632ed99-8751-4c2a-ad00-3cc016300e0867651307-0389-47bf-ae8d-fd94364e808fnumber067651307-0389-47bf-ae8d-fd94364e808f7023c112-819d-4c9c-82f3-84ab84c9f56079b9bf7c-222d-4cc3-adc8-5bb337fa6d72Moves the specified worksheet to another workbook. 79b9bf7c-222d-4cc3-adc8-5bb337fa6d72b950e637-fb25-4932-b970-65e4ee21dd1d79b9bf7c-222d-4cc3-adc8-5bb337fa6d72number79b9bf7c-222d-4cc3-adc8-5bb337fa6d72text79b9bf7c-222d-4cc3-adc8-5bb337fa6d72text79b9bf7c-222d-4cc3-adc8-5bb337fa6d72text79b9bf7c-222d-4cc3-adc8-5bb337fa6d72efca1a70-2f20-4dda-b071-825a986958a6eacc4634-9985-4a1d-9773-8f79928708ee79b9bf7c-222d-4cc3-adc8-5bb337fa6d72flag79b9bf7c-222d-4cc3-adc8-5bb337fa6d72e804939a-8a40-4803-89cd-b10e57a975835d46a63f-e90b-4432-8c62-52d2e238006579b9bf7c-222d-4cc3-adc8-5bb337fa6d72764ea205-800b-4ab5-adc1-273a46ad93b6 p Then If Copy Then sSheet.Copy(After:=dBook.Worksheets(p)) Else sSheet.Move(After:=dBook.Worksheets(p)) End If Else If Copy Then sSheet.Copy(Before:=dBook.Worksheets(p)) Else sSheet.Move(Before:=dBook.Worksheets(p)) End If End If Success = True Catch e As Exception Success = False Message = e.Message Finally dBook = Nothing sSheet = Nothing End Try]]>79b9bf7c-222d-4cc3-adc8-5bb337fa6d7279b9bf7c-222d-4cc3-adc8-5bb337fa6d72flag79b9bf7c-222d-4cc3-adc8-5bb337fa6d72text79b9bf7c-222d-4cc3-adc8-5bb337fa6d7238d819d9-2dec-4ae8-afe3-76da4409693565eda7a6-ce00-4372-9fc9-26931328aba479b9bf7c-222d-4cc3-adc8-5bb337fa6d7279b9bf7c-222d-4cc3-adc8-5bb337fa6d72number0da83b3dd-0312-4b53-9732-e3f8e29c561fOffice 2013 onwards There are known issues when attempting to read and write data using the Excel VBO with the application set to run in background mode. These issues can be overcome by using the Show action79b9bf7c-222d-4cc3-adc8-5bb337fa6d72flagFalse79b9bf7c-222d-4cc3-adc8-5bb337fa6d72da83b3dd-0312-4b53-9732-e3f8e29c561f11afaed8-560c-4915-b3eb-04f45158a941da83b3dd-0312-4b53-9732-e3f8e29c561ftextda83b3dd-0312-4b53-9732-e3f8e29c561ftextda83b3dd-0312-4b53-9732-e3f8e29c561ftextda83b3dd-0312-4b53-9732-e3f8e29c561fflagda83b3dd-0312-4b53-9732-e3f8e29c561f8136ae2b-8fb0-4945-8016-b5b9eae4c2d2da83b3dd-0312-4b53-9732-e3f8e29c561fda83b3dd-0312-4b53-9732-e3f8e29c561fflagda83b3dd-0312-4b53-9732-e3f8e29c561ftextda83b3dd-0312-4b53-9732-e3f8e29c561f70304b7a-b551-4a52-b52d-924f11d328a7470e1a49-496c-497e-b59a-537f730059cbda83b3dd-0312-4b53-9732-e3f8e29c561fda83b3dd-0312-4b53-9732-e3f8e29c561ftextda83b3dd-0312-4b53-9732-e3f8e29c561fnumber79b9bf7c-222d-4cc3-adc8-5bb337fa6d72eba296d1-0f89-4c61-892c-b25b40f3f6189ad740a0-b0e5-483c-9247-2b766533c85279b9bf7c-222d-4cc3-adc8-5bb337fa6d72e9db38cf-4c64-49fa-a46b-f2dfa31dfe18 p Then If Copy Then sSheet.Copy(After:=dBook.Worksheets(p)) Else sSheet.Move(After:=dBook.Worksheets(p)) End If Else If Copy Then sSheet.Copy(Before:=dBook.Worksheets(p)) Else sSheet.Move(Before:=dBook.Worksheets(p)) End If End If Success = True Catch e As Exception Success = False Message = e.Message Finally sBook = Nothing dBook = Nothing sSheet = Nothing End Try]]>79b9bf7c-222d-4cc3-adc8-5bb337fa6d72764ea205-800b-4ab5-adc1-273a46ad93b679b9bf7c-222d-4cc3-adc8-5bb337fa6d727b25db9b-d103-4ba0-a8a5-468a16e50dd732d3772b-fe03-4a13-a415-62b4fdd5fa8f79b9bf7c-222d-4cc3-adc8-5bb337fa6d7279b9bf7c-222d-4cc3-adc8-5bb337fa6d728b56215b-b4e5-4a95-a49d-179871dd1d2b79b9bf7c-222d-4cc3-adc8-5bb337fa6d72number510b0ce5-bf46-43a1-86a4-72877f427e6f510b0ce5-bf46-43a1-86a4-72877f427e6f510b0ce5-bf46-43a1-86a4-72877f427e6fnumber510b0ce5-bf46-43a1-86a4-72877f427e6ftext510b0ce5-bf46-43a1-86a4-72877f427e6ftext510b0ce5-bf46-43a1-86a4-72877f427e6f244c946c-e677-4da7-8d5a-de244ec07eea510b0ce5-bf46-43a1-86a4-72877f427e6f27d60ef1-833c-44f5-b5ab-0aefb2c0581c510b0ce5-bf46-43a1-86a4-72877f427e6fnumberda83b3dd-0312-4b53-9732-e3f8e29c561ftextda83b3dd-0312-4b53-9732-e3f8e29c561ftext9147cb85-5c6f-4a47-adcf-ab472d5a0b5aSelects cells of a worksheet.9147cb85-5c6f-4a47-adcf-ab472d5a0b5a9147cb85-5c6f-4a47-adcf-ab472d5a0b5anumber9147cb85-5c6f-4a47-adcf-ab472d5a0b5atext9147cb85-5c6f-4a47-adcf-ab472d5a0b5atext9147cb85-5c6f-4a47-adcf-ab472d5a0b5a34677bae-38d3-4518-917f-c883f9c1677d9147cb85-5c6f-4a47-adcf-ab472d5a0b5atext9147cb85-5c6f-4a47-adcf-ab472d5a0b5a2cb73eba-be13-4568-a11a-02f3a20b9dfe9147cb85-5c6f-4a47-adcf-ab472d5a0b5a30e9f460-bd3e-4273-bb7c-77fedbfe445f7cb606b3-cd0e-46f3-bd05-fd635aa9d2d49147cb85-5c6f-4a47-adcf-ab472d5a0b5a9147cb85-5c6f-4a47-adcf-ab472d5a0b5aflag9147cb85-5c6f-4a47-adcf-ab472d5a0b5atext3d161cf5-0e7a-4ac7-aa8c-f37a1b380e1aDelete cells from the workbook.3d161cf5-0e7a-4ac7-aa8c-f37a1b380e1a3d161cf5-0e7a-4ac7-aa8c-f37a1b380e1anumber3d161cf5-0e7a-4ac7-aa8c-f37a1b380e1atext3d161cf5-0e7a-4ac7-aa8c-f37a1b380e1a97daebd3-2794-4944-af67-9698bbaa77b33d161cf5-0e7a-4ac7-aa8c-f37a1b380e1a6f1da154-330d-490b-b615-df266c6767fa3d161cf5-0e7a-4ac7-aa8c-f37a1b380e1aa3f17004-6131-48f2-b0a8-e602f24b599ebb18bdc9-f544-4157-a6ba-e289c8f33c433d161cf5-0e7a-4ac7-aa8c-f37a1b380e1a3d161cf5-0e7a-4ac7-aa8c-f37a1b380e1aflag3d161cf5-0e7a-4ac7-aa8c-f37a1b380e1atext3d161cf5-0e7a-4ac7-aa8c-f37a1b380e1atext3d161cf5-0e7a-4ac7-aa8c-f37a1b380e1a6e608312-7a91-4039-8f0a-90ccaac7d3cc8a8e9a33-5eca-485a-adeb-e5a43592d6d43d161cf5-0e7a-4ac7-aa8c-f37a1b380e1a57a5ebdd-ad03-4f7b-a358-8ef0172ed1fd3d161cf5-0e7a-4ac7-aa8c-f37a1b380e1anumber3d161cf5-0e7a-4ac7-aa8c-f37a1b380e1a57a5ebdd-ad03-4f7b-a358-8ef0172ed1fd71ebd060-a411-45fc-8f39-132eb3e5ff79Copy cells from the workbook.71ebd060-a411-45fc-8f39-132eb3e5ff7971ebd060-a411-45fc-8f39-132eb3e5ff79number71ebd060-a411-45fc-8f39-132eb3e5ff79text71ebd060-a411-45fc-8f39-132eb3e5ff79d8005fde-9fe5-47f9-a980-e4beae15815a71ebd060-a411-45fc-8f39-132eb3e5ff79bba0e0d4-6894-469c-a9b8-1f07855dadc96ceb186e-fea0-48a8-a72d-f104f83699c671ebd060-a411-45fc-8f39-132eb3e5ff7971ebd060-a411-45fc-8f39-132eb3e5ff79flag71ebd060-a411-45fc-8f39-132eb3e5ff79text71ebd060-a411-45fc-8f39-132eb3e5ff79a8acd5cc-0955-4896-b87a-80091b060926035d5ed0-2f39-46ca-80c1-b0127418dc9ePaste text into cells of a workbook.035d5ed0-2f39-46ca-80c1-b0127418dc9e035d5ed0-2f39-46ca-80c1-b0127418dc9enumber035d5ed0-2f39-46ca-80c1-b0127418dc9etext035d5ed0-2f39-46ca-80c1-b0127418dc9e0d27a545-71b3-4a27-843b-8ed69b1648ce035d5ed0-2f39-46ca-80c1-b0127418dc9e1ebf6405-9e3a-45f8-be9c-fdd70f254b344830e942-edaf-4bd2-8922-9cffafc084ad035d5ed0-2f39-46ca-80c1-b0127418dc9e035d5ed0-2f39-46ca-80c1-b0127418dc9eflag035d5ed0-2f39-46ca-80c1-b0127418dc9etext035d5ed0-2f39-46ca-80c1-b0127418dc9e360c1bdb-1960-4486-ad05-8ec4485ef0ec2c59601b-2b70-4c97-a218-0abf1bf7463aWrites text to clipboard so that it can be copied.2c59601b-2b70-4c97-a218-0abf1bf7463a2279ba0c-3963-48f8-b813-4b0f53f474712c59601b-2b70-4c97-a218-0abf1bf7463a2c59601b-2b70-4c97-a218-0abf1bf7463atext2c59601b-2b70-4c97-a218-0abf1bf7463aa82e0657-86e9-4273-bd0f-2065d5f70254035d5ed0-2f39-46ca-80c1-b0127418dc9eflagFalse035d5ed0-2f39-46ca-80c1-b0127418dc9e5bd5a242-a414-4d49-b093-0eb8d3978f8af98e8dcf-bff1-418a-9963-4878022c7391035d5ed0-2f39-46ca-80c1-b0127418dc9e24bf06a1-fd8f-4cd3-bab6-e05552f8bdba035d5ed0-2f39-46ca-80c1-b0127418dc9enumber035d5ed0-2f39-46ca-80c1-b0127418dc9e24bf06a1-fd8f-4cd3-bab6-e05552f8bdba5eee765d-c84b-493f-9132-f6a27f296d0eCut cells from the workbook.5eee765d-c84b-493f-9132-f6a27f296d0e5eee765d-c84b-493f-9132-f6a27f296d0enumber5eee765d-c84b-493f-9132-f6a27f296d0etext5eee765d-c84b-493f-9132-f6a27f296d0e3dcf0167-85d1-4170-b214-86784cbcab655eee765d-c84b-493f-9132-f6a27f296d0ef2f20301-ebd9-4fbd-9b94-ca2074e69294797b7b44-cd61-4d3c-8874-82e44868ea1b5eee765d-c84b-493f-9132-f6a27f296d0e5eee765d-c84b-493f-9132-f6a27f296d0eflag5eee765d-c84b-493f-9132-f6a27f296d0etext5eee765d-c84b-493f-9132-f6a27f296d0e581ece97-ebdc-4855-8fdf-45290b4e587dc37e9923-b729-471b-80b1-7d44113ca618Protects the workbook so that it is encrypted with a password.c37e9923-b729-471b-80b1-7d44113ca618numberc37e9923-b729-471b-80b1-7d44113ca618textc37e9923-b729-471b-80b1-7d44113ca618e47e5f86-b7d0-409e-bf2a-6673cf28bac7c37e9923-b729-471b-80b1-7d44113ca618passwordc37e9923-b729-471b-80b1-7d44113ca61809dd5e11-1dd3-4f18-bbe0-ed52d1f79fb07316eded-6aed-4d1d-9eeb-64fbbb8e53a0Hides worksheet so that is not visible.7316eded-6aed-4d1d-9eeb-64fbbb8e53a0number7316eded-6aed-4d1d-9eeb-64fbbb8e53a0text7316eded-6aed-4d1d-9eeb-64fbbb8e53a0text7316eded-6aed-4d1d-9eeb-64fbbb8e53a0298fe33e-bd86-4109-8540-f1abe8d02eb8c37e9923-b729-471b-80b1-7d44113ca618c37e9923-b729-471b-80b1-7d44113ca6184a51d886-d307-4904-8ce4-98191c734a17fbeb4a74-fc5f-431f-b150-15549afc2a22c37e9923-b729-471b-80b1-7d44113ca6187316eded-6aed-4d1d-9eeb-64fbbb8e53a066ad2075-9b87-44be-9c6d-0a702d752f577316eded-6aed-4d1d-9eeb-64fbbb8e53a07316eded-6aed-4d1d-9eeb-64fbbb8e53a0c2e5c7e9-93a1-489e-a870-523042f050f17dca362f-2e45-443b-adc7-9075f02fc7177316eded-6aed-4d1d-9eeb-64fbbb8e53a0c37e9923-b729-471b-80b1-7d44113ca618flagc37e9923-b729-471b-80b1-7d44113ca618text7316eded-6aed-4d1d-9eeb-64fbbb8e53a0flag7316eded-6aed-4d1d-9eeb-64fbbb8e53a0texte62b9c20-62f8-4d28-8f19-de7610e56e1eHide all other worksheets so that they are not visible.e62b9c20-62f8-4d28-8f19-de7610e56e1enumbere62b9c20-62f8-4d28-8f19-de7610e56e1etexte62b9c20-62f8-4d28-8f19-de7610e56e1etexte62b9c20-62f8-4d28-8f19-de7610e56e1ec5ca2626-02e2-4413-9476-9958c1b7b717e62b9c20-62f8-4d28-8f19-de7610e56e1e36529e74-e353-4cbd-b6ff-3591c0390efde62b9c20-62f8-4d28-8f19-de7610e56e1ee62b9c20-62f8-4d28-8f19-de7610e56e1e52e20387-128e-4f5c-b182-7d28a9005a71c5840684-3348-4ee6-a024-dda79500a851e62b9c20-62f8-4d28-8f19-de7610e56e1ee62b9c20-62f8-4d28-8f19-de7610e56e1eflage62b9c20-62f8-4d28-8f19-de7610e56e1etext1487aa65-ac8a-44e9-a6e9-8b16b4be5199Import CSV worksheets into a workbook using a path.1487aa65-ac8a-44e9-a6e9-8b16b4be5199number1487aa65-ac8a-44e9-a6e9-8b16b4be5199text1487aa65-ac8a-44e9-a6e9-8b16b4be5199text1487aa65-ac8a-44e9-a6e9-8b16b4be5199a09cfa98-b04d-472f-ad84-87e6a0bdb0111487aa65-ac8a-44e9-a6e9-8b16b4be519991f84fae-ca36-4b8b-8221-bc3e95cd2ef31487aa65-ac8a-44e9-a6e9-8b16b4be51991487aa65-ac8a-44e9-a6e9-8b16b4be5199bfe990bf-be29-4c21-ac04-96a798ab18276aaf6a41-be76-442d-9c2b-06905c4e03551487aa65-ac8a-44e9-a6e9-8b16b4be51991487aa65-ac8a-44e9-a6e9-8b16b4be5199flag1487aa65-ac8a-44e9-a6e9-8b16b4be5199text1487aa65-ac8a-44e9-a6e9-8b16b4be5199text1487aa65-ac8a-44e9-a6e9-8b16b4be5199text1487aa65-ac8a-44e9-a6e9-8b16b4be5199b0e18e5b-791a-492a-b6c6-112ed2cdf10f6e036392-ff83-4dfa-94fe-ff1ed03cd9bc1487aa65-ac8a-44e9-a6e9-8b16b4be51997803cce6-3095-4d46-9cd2-793181eb080d1487aa65-ac8a-44e9-a6e9-8b16b4be5199number1487aa65-ac8a-44e9-a6e9-8b16b4be51997803cce6-3095-4d46-9cd2-793181eb080d1487aa65-ac8a-44e9-a6e9-8b16b4be5199Assume no text qualifierfc2b8ffb-c597-4ede-8134-1cc80a2c32931487aa65-ac8a-44e9-a6e9-8b16b4be5199textb39f7ce9-ba76-4a8c-a404-bccf4c9ffe67Gets the name of the worksheet.b39f7ce9-ba76-4a8c-a404-bccf4c9ffe67b39f7ce9-ba76-4a8c-a404-bccf4c9ffe67numberb39f7ce9-ba76-4a8c-a404-bccf4c9ffe67textb39f7ce9-ba76-4a8c-a404-bccf4c9ffe67textb39f7ce9-ba76-4a8c-a404-bccf4c9ffe67ba712112-b784-4f87-a7ff-5a8721aca35db39f7ce9-ba76-4a8c-a404-bccf4c9ffe6739f8ebfd-a1e8-4517-add5-653f475fe8ebb39f7ce9-ba76-4a8c-a404-bccf4c9ffe67number510b0ce5-bf46-43a1-86a4-72877f427e6f4235fac3-2295-4511-828e-090e9c888d388edc5ff8-0139-409d-ba63-7f23bf726964510b0ce5-bf46-43a1-86a4-72877f427e6fb39f7ce9-ba76-4a8c-a404-bccf4c9ffe672af2843d-00f3-464f-ab67-305ae6ccf858636399b4-ec2b-41a7-ac41-27e98637df4cb39f7ce9-ba76-4a8c-a404-bccf4c9ffe67b39f7ce9-ba76-4a8c-a404-bccf4c9ffe67flagb39f7ce9-ba76-4a8c-a404-bccf4c9ffe67text510b0ce5-bf46-43a1-86a4-72877f427e6fflag510b0ce5-bf46-43a1-86a4-72877f427e6ftext659749b0-1f00-4e33-956d-6be6172a8739Insert cells into the workbook.659749b0-1f00-4e33-956d-6be6172a8739659749b0-1f00-4e33-956d-6be6172a8739number659749b0-1f00-4e33-956d-6be6172a8739text659749b0-1f00-4e33-956d-6be6172a87391f31ede9-3b32-4aaf-9b55-573cb227a850659749b0-1f00-4e33-956d-6be6172a8739be039ecb-6427-4a80-8a91-9b69561fc2de659749b0-1f00-4e33-956d-6be6172a87397c868cff-a594-49f6-bde7-fc3ba2cd17c6741cc1d1-3936-4201-ad74-e95993e64b92659749b0-1f00-4e33-956d-6be6172a8739659749b0-1f00-4e33-956d-6be6172a8739flag659749b0-1f00-4e33-956d-6be6172a8739text659749b0-1f00-4e33-956d-6be6172a8739text659749b0-1f00-4e33-956d-6be6172a8739594ef012-6d63-4256-a43c-dd84c172ad1521ff25a4-b431-43fb-af46-02fff92627e7659749b0-1f00-4e33-956d-6be6172a8739dc1f9d40-b099-44c3-a2c1-e782413b0914659749b0-1f00-4e33-956d-6be6172a8739number659749b0-1f00-4e33-956d-6be6172a8739dc1f9d40-b099-44c3-a2c1-e782413b09144229da44-68c0-4b51-9d2c-08be4a9d6727Runs the specified macro. Depending on how the macro has been created the name will be one of the following: A. Just the macro name e.g. MyMacro B. The workbook and macro name e.g. MyWorkbook.xls!MyMacro C. The workbook, worksheet and the macro name e.g. 'MyWorkbook.xls!'MyWorksheet.MyMacro4229da44-68c0-4b51-9d2c-08be4a9d6727a19d33b9-0a8b-4fb1-b333-7fb65c7733ab4229da44-68c0-4b51-9d2c-08be4a9d67274229da44-68c0-4b51-9d2c-08be4a9d67270a6413b8-4ce8-4399-b3e2-974e44d812af4229da44-68c0-4b51-9d2c-08be4a9d6727number04229da44-68c0-4b51-9d2c-08be4a9d6727textf92e2a34-0aa8-4ca1-b4ac-5dce2318ec5e680eac96-2bd0-4d02-a62b-ac7bf684dae9733c2840-8162-465a-a8f2-7d023087c369ec281dc5-ed57-4b8b-9bf5-212e314657aaec281dc5-ed57-4b8b-9bf5-212e314657aanumber30ec281dc5-ed57-4b8b-9bf5-212e314657aa6af35f22-949f-47dd-8517-78b00d73f8d9ec281dc5-ed57-4b8b-9bf5-212e314657aa40a1c81a-4d1f-484f-bcde-c2cc59d83dbd59ebf811-1faf-4486-8630-6d2de19027f5ec281dc5-ed57-4b8b-9bf5-212e314657aa567674ba-270a-4107-ada5-1dae59125522ec281dc5-ed57-4b8b-9bf5-212e314657aaflag6e7cb0ad-5910-4065-aab2-2919726bae39number3021a53e34-8128-41cb-ad73-17250758ff23number306ccaae8b-c06f-45c8-8772-835218881458number302fb01e3f-e275-43bc-83eb-579001da335bnumber306ec3006a-6553-4526-b522-32526c4aa3ccnumber309f7a4a91-68c9-4871-bb65-417e96cc4ad1number30f92e2a34-0aa8-4ca1-b4ac-5dce2318ec5eflagTrue8e22a2d9-d4c3-4fe0-bbf0-4788d1812d30textValue 8f20ac0c-296f-43c3-b0d9-59b5b2b7da1cApplicationApplicationunknownFalse001.25Clean Up001.25Collection to JSON001.25JSON to Collection001.25JSON to Collection (skipping JArray)001.25ff6524a3-da73-439c-a4ba-2aabb994009cSystem.Data.dllSystem.Xml.dllSystem.Drawing.dllNewtonsoft.Json.dllSystem.Core.dllSystem.DataSystem.DrawingNewtonsoft.JsonSystem.Collections.GenericSystem.TextSystem.IOSystemNewtonsoft.Json.LinqSystem.CollectionsSystem.Linqvisualbasic columns(pair.Key) Then Return False Else columns(pair.Key) = tp End If Next Return True End Function ) If allTypesInColumnsMatch Then For Each pair As DictionaryEntry In columns Dim key As String = CStr(pair.Key) Dim tp as Type = CType(pair.Value, Type) If tp = GetType(JObject) OrElse tp = GetType(JArray) Then dt.Columns.Add(key, GetType(DataTable)) Else dt.Columns.Add(key, tp) End If Next ElseIf first IsNot Nothing Then dt.Columns.Add(JSON.Array, first) End If If populate Then For Each e As Object In jarr Dim dr As DataRow = dt.NewRow() If allTypesInColumnsMatch Then For Each pair As KeyValuePair(Of String, JToken) In DirectCast(e, JObject) dr(pair.Key) = DeserialiseGeneric(pair.Value, True) Next Else dr(JSON.Array) = DeserialiseGeneric(e, True) End If dt.Rows.Add(dr) Next End If Return dt End Function Private Function DeserialiseArray(ByVal o As JArray, ByVal populate As Boolean) As DataTable Dim dt As New DataTable Dim first As Type = Nothing For Each e As Object In o If first Is Nothing Then first = GetTypeOf(DeserialiseGeneric(e, False)) End If If GetTypeOf(DeserialiseGeneric(e, False)) IsNot first Then Throw New Exception("Data Type mismatch in array") End If Next If first IsNot Nothing Then dt.Columns.Add(JSON.Array, first) End If If populate Then For Each e As Object In o Dim dr As DataRow = dt.NewRow() dr(JSON.Array) = DeserialiseGeneric(e, True) dt.Rows.Add(dr) Next End If Return dt End Function Private Function GetTypeOf(ByVal o As Object) As Type If o Is Nothing Then Return GetType(String) Return o.GetType End Function]]>6a9ccb5a-8cc3-44ac-b343-39680558062f6a9ccb5a-8cc3-44ac-b343-39680558062f153f4275-2acd-48a5-b6e6-409fcb2441a86a9ccb5a-8cc3-44ac-b343-39680558062fe5aeb4cb-cd25-4535-b3be-b46681b4e6b6e5aeb4cb-cd25-4535-b3be-b46681b4e6b6779de445-0658-4a45-a1ef-a38d6de24429e5aeb4cb-cd25-4535-b3be-b46681b4e6b66a9ccb5a-8cc3-44ac-b343-39680558062fClean Up Page This is an optional page where you might choose to perform some finalisation (or "cleanup") tasks as your business object is closed down. The cleanup action will be called automatically immediately after closing your business object at the end of a business process. You will not be able to call this action from a business process, nor will it be called at any other time than before the disposal of the business object.Initialise Page This is an optional page where you might choose to perform some initialisation tasks after your business object is loaded. The initialise action will be called automatically immediately after loading your business object. You will not be able to call this action from a business process, nor will it be called at any other time than after the creation of the object.e5aeb4cb-cd25-4535-b3be-b46681b4e6b666526e3e-8b9e-4452-9ca8-f70baa9aec4ae5aeb4cb-cd25-4535-b3be-b46681b4e6b6text560472b9-cea4-41d5-bc36-c49d6c1b26e6560472b9-cea4-41d5-bc36-c49d6c1b26e67923115c-5283-4694-b2c1-142afb4d3788560472b9-cea4-41d5-bc36-c49d6c1b26e6e5aeb4cb-cd25-4535-b3be-b46681b4e6b6collection560472b9-cea4-41d5-bc36-c49d6c1b26e6ede1f653-07f1-42eb-8616-8d2d3dfb5244560472b9-cea4-41d5-bc36-c49d6c1b26e6collection560472b9-cea4-41d5-bc36-c49d6c1b26e6texte53062c7-68de-4763-b37a-456688d0d607e53062c7-68de-4763-b37a-456688d0d6078cb729e4-705c-400b-8d1d-0b54dd51fb94e53062c7-68de-4763-b37a-456688d0d607e53062c7-68de-4763-b37a-456688d0d60721187841-67f3-4ed1-a3b0-de763bb1e801e53062c7-68de-4763-b37a-456688d0d607texte53062c7-68de-4763-b37a-456688d0d607collection System System.Drawing System.Data System.dll System.Data.dll System.Xml.dll System.Drawing.dll