Changes between Initial Version and Version 4 of Ticket #2199


Ignore:
Timestamp:
09/30/12 13:05:23 (12 years ago)
Author:
water
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #2199

    • Property Status changed from new to reopened
    • Property Component changed from AutoIt to Standard UDFs
  • Ticket #2199 – Description

    initial v4  
    1 The _ExcelSheetAddNew() function abnormally terminates script execution with a COM error if called specifying a sheet name that already exists within the workbook.  Also, after the error, the workbook will erroneously contain a new generically named sheet ("Sheet 1", "Sheet 2", etc).
    2 
    3 The following change adds a loop to check if the sheet is already in the workbook, and kicks out a new @error value (@error = 2) if found.
    4 
    5 {{{
    6 ; #FUNCTION# ====================================================================================================================
    7 ; Name...........: _ExcelSheetAddNew
    8 ; Description ...: Add new sheet to workbook - optionally with a name.
    9 ; Syntax.........: _ExcelSheetAddNew($oExcel[, $sName = ""])
    10 ; Parameters ....: $oExcel - An Excel object opened by a preceding call to _ExcelBookOpen() or _ExcelBookNew()
    11 ;                  $sName - The name of the sheet to create (default follows standard Excel new sheet convention)
    12 ; Return values .: Success      - Returns 1
    13 ;                  Failure              - Returns 0 and sets @error on errors:
    14 ;                  |@error=1     - Specified object does not exist
    15 ;                  |@error=2     - Specified sheet already exists
    16 ; Author ........: SEO <locodarwin at yahoo dot com>
    17 ; Modified.......: litlmike, Spiff59
    18 ; Remarks .......: None
    19 ; Related .......:
    20 ; Link ..........:
    21 ; Example .......: Yes
    22 ; ===============================================================================================================================
    23 Func _ExcelSheetAddNew($oExcel, $sName = "")
    24         If Not IsObj($oExcel) Then Return SetError(1)
    25         If $sName Then
    26                 Local $iTemp = $oExcel.ActiveWorkbook.Sheets.Count
    27                 For $xx = 1 To $iTemp
    28                         If $oExcel.ActiveWorkbook.Sheets($xx).Name = $sName Then
    29                                 Return SetError(2)
    30                         EndIf
    31                 Next
    32         EndIf
    33         Local $oSheet = $oExcel.ActiveWorkBook.WorkSheets.Add().Activate()
    34         If $sName Then $oExcel.ActiveSheet.Name = $sName
    35         Return 1
    36 EndFunc   ;==>_ExcelSheetAddNew
    37 }}}
     1As the Excel UDF is being brushed up this seems to be the right moment to reopen and solve this ticket.