Jump to content
Sign in to follow this  
ahha

Get excel workbook and sheet name

Recommended Posts

Here you go (now I see where the " - Microsoft Excel" text is coming from, a maximized window.  This is getting really confusing :'()

One instance:

image.thumb.png.51977d8265160b9fe171b7c7b522dff3.png

image.thumb.png.ce665094144a7a765ca20b9c204e690f.png

 

image.thumb.png.78cc40247929feaa8090ba9326dd54ef.png

 

Next instance:

image.thumb.png.4e29d9165a7eb93fd4f785fc7e80ffad.png

 

image.thumb.png.848d32d3953edf813254fef3ab7cea7b.png

Share this post


Link to post
Share on other sites

run those 4 lines please with the maximized books/instances only :

Local $aWinList = WinList("[CLASS:XLMAIN]")
Local $oXL = _Excel_BookAttach ($aWinList[1][0],"Title")
Local $Name = $oXL.ActiveSheet.Name
MsgBox (0,"",$Name)

 

Share this post


Link to post
Share on other sites

But of which instance and which workbook?  I had both instances open and all the books. 

Here are two books I opened (manually) as you can see the selected one is on the left Book1 Sheet3

image.png.ab3c29e8bdcb1137571ae7ba3cfc98eb.png

I run your lines of code and here's what I get.

image.png.e8f6ef1546d63f254d9a5fe28bb4c062.png

It's picking Book2 Sheet1, not Book1 Sheet3.  Ugh.

 

 

 

Edited by ahha
Full screen shot deleted.

Share this post


Link to post
Share on other sites

That appears to be correct.   So I need to maximize a window grab the info and restore it to its previous size?  The problem is users cascade their windows and do not necessarily maximize them.  As I understand you're relying on the maximized window so the WinList picks up the Book - is that correct?

 

Share this post


Link to post
Share on other sites

My variation above works except when an Excel sheet is opened manually.  It's not maximized so that may be part of the problem as WinList does not pick it up.  I have to tell you the WinList versus _Excel_BookList() issue is confusing.  I think that perhaps I may need to use an _Excel_Open to connect to the existing instance but this is confusing because I think that if the sheet is maximized this will cause problems.  I need to code and test more.

 

 

Share this post


Link to post
Share on other sites

Are you using Office 64-bit?  I've tested my code on Windows 10 x64 - Office 2007 and Windows 10 x64 - Office 2016, they both work, I've minimized, maximized and with the title truncated (Window width), it always works.  The fact that application.caption is blank means something isn't quite right on your system.

Share this post


Link to post
Share on other sites

Subz,

Interesting.  I'm using Windows 10 Pro x64 , Version  10.0.17134.  However Excel 2007 appears to be 32 bit.

When I get into the office I can check on a variety of computers and Office 2016.

There were many versions above, so could you be so kind as to post the code you want me to test?  That way we're on the same page. 

Thanks.

ahha

Share this post


Link to post
Share on other sites

Here is the code I was testing:

#AutoIt3Wrapper_run_debug_mode=Y

#include <Array.au3>
#include <Excel.au3>
#include <MsgBoxConstants.au3>
#include <Debug.au3>

While ProcessExists("EXCEL.exe")
    ProcessClose("EXCEL.exe")
WEnd
;Illustrate issue I'm having.  For a user seletecd range (possibly multiple $oWorkbooks open with multiple sheets), I need to determine the Excel application object of the selected cells and the sheet
;I need $oWorkbook, $WorkSheet, $Range
;look at: https://www.autoitscript.com/forum/topic/197347-get-excel-workbook-and-sheet-name/

;Simulate issue - in real world user may have opened Excel and I have no knowledge of the object
$oExcel1 = _Excel_Open()        ;open first instance
_Excel_BookNew($oExcel1)        ;workbook with 3 sheets
_Excel_BookNew($oExcel1)        ;another workbook in same instance with 3 sheets

$oExcel2 = _Excel_Open(Default, Default, Default, Default, True)    ;open second instance
_Excel_BookNew($oExcel2)        ;workbook with 3 sheets
_Excel_BookNew($oExcel2)        ;another workbook in same instance with 3 sheets
_Excel_BookOpen($oExcel2, "C:\Program Files (x86)\AutoIt3\Examples\Helpfile\Extras\_Excel1.xls")    ;open an existing workbook that has been saved so we have an entry in Col2 for full pathname

;now here's what I know without a priori knowledge of the objects
;the workbook names are unigue - that is there will never be a Book1 in any but one of the instances or filename (i.e. single open instance of a particular file)

$aWorkBooks = _Excel_BookList()     ;get an array of all workbooks open
;Success: a two-dimensional zero based array with the following information:
;col 0 - Object of the workbook
;col 1 - Name of the workbook/file
;col 2 - Complete path to the workbook/file
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Error listing workbooks.", "@error = '" & @error & "'" & @CRLF &"@extended = '" & @extended & "'")

MsgBox($MB_SYSTEMMODAL + $MB_OK, "Info", "Select a range in any Excel instance, any Workbook, and any sheet.  Then click OK.")

;new approach by Subz - see his latest entry
ReDim $aWorkBooks[UBound($aWorkBooks)][5]
For $i = 0 To UBound($aWorkBooks) - 1
    ConsoleWrite("Workbook Name: " & $aWorkBooks[$i][1] & @CRLF & "Window Title: " & $aWorkBooks[$i][0].Application.Caption & @CRLF)
    $aWorkBooks[$i][3] = StringInStr($aWorkBooks[$i][0].Application.Caption, $aWorkBooks[$i][1]) > 0 ? $aWorkBooks[$i][0].Application.Caption : ""
    $aWorkBooks[$i][4] = $aWorkBooks[$i][0].ActiveSheet.Name
Next
_ArrayDisplay($aWorkBooks, "Workbooks", "", 0, Default, "Excel Object|WorkBook Name|WorkBook Path|Active Window|Active Sheet")
Local $aWinList = WinList()
_ArrayDisplay($aWinList)
For $i = 1 To $aWinList[0][0]
    $iSearch = _ArraySearch($aWorkBooks, $aWinList[$i][0], 0, 0, 0, 1, 1, 3)
    If $iSearch > -1 Then
        MsgBox(4096, "", "Active Window Title: " & $aWorkBooks[$iSearch][3] & @CRLF & "Active WorkBook: " & $aWorkBooks[$iSearch][1] & @CRLF & "Active Sheet: " & $aWorkBooks[$iSearch][4])
        $oDefaultActiveExcelObject = _Excel_BookAttach($aWinList[$i][0], "Title")
        ExitLoop
    EndIf
Next

MsgBox($MB_SYSTEMMODAL, "Info", "Pause before exit.")

;force close all Excel w/o saving
_Excel_Close($oExcel1, False, True)
_Excel_Close($oExcel2, False, True)

Exit

 

Share this post


Link to post
Share on other sites

Subz,

Thanks.  I tested the code again just now as it's been a hectic day with many versions and Active Window (Col 3) is still empty.

We'll see what other computers show.

 

 

image.png

Edited by ahha

Share this post


Link to post
Share on other sites
Just now, Subz said:

@Nine BTW I think the WinList("[CLASS:XLMAIN]") you suggested is the best method, I'm just curious as to why the title isn't showing.

dude stop throwing codes all around and start reading.  I explained why to OP.  Very basic.  BTW, I really respect your work. You are a great foundation of this forum and I think  we would lose a huge part if you were not here.  But truly, you got to stop throwing code all around and instead teach the foundation of the wonderful world of autoit scripting...

Share this post


Link to post
Share on other sites

:blink: Not sure what "throwing codes all around and start reading." is all about, as I said in my previous post WinList returns the full title for me, whether minimized, maximized or resized manually, since the OP was also on Windows 10 and I had tested it on three separate Win 10 machines with different office version, I was curious as to why his machine wasn't returning the same.

Share this post


Link to post
Share on other sites

This script works perfect on Windows 7, Excel 2016, single instance and 3 open workbooks
Will test with multiple Excel instances soon.
 

#include <Excel.au3>
Global $oExcelApp, $oExcelWindow
Global $oExcel = _Excel_Open()                                       ; Connect to an already started Excel instance
Global $aWorkbooks = _Excel_BookList()                               ; Get a list of workbooks for all Excel instances
; MsgBox(0, "Info", "Activate a workbook and select a range. 10 Seconds to do", 10)
For $i = 0 to UBound($aWorkbooks) - 1
   $oExcelApp = $aWorkbooks[$i][0].Parent                            ; Application object for the selected workbook <== MODIFIED
   $oExcelWindow = $oExcelApp.ActiveWindow                           ; Get active Window for the selected Excel instance
   If IsObj($oExcelWindow) Then                                      ; Is there an active window for this Excel instance?
       $oExcelActiveCell = $oExcelWindow.ActiveCell                  ; Get the active cell of the window
       If @error = 0 Then
           MsgBox(0, "Result", "Address: " & $oExcelActiveCell.Address & @CRLF & _
                "Sheet Name: " & $oExcelApp.ActiveSheet.Name & @CRLF & _
                "Book Name: " & $oExcelApp.ActiveWorkbook.Name)      ; Displays the selected cell or the top left cell of a range
           ExitLoop                                                  ; If active cell found stop searching
       EndIf
   EndIf
Next

 


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2020-07-21 - Version 1.5.1.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2020-06-27 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (NEW 2020-06-27 - Version 1.3.2.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
PowerPoint (2017-06-06 - Version 0.0.5.0) - Download - General Help & Support
Excel - Example Scripts - Wiki
Word - Wiki
Task Scheduler (2019-12-03 - Version 1.5.1.0) - Download - General Help & Support - Wiki

Tutorials:
ADO - Wiki, WebDriver - Wiki

 

Share this post


Link to post
Share on other sites

This example creates two instances of Excel with 3 workbooks and works fine as well:

#include <Excel.au3>

Global $oExcelApp, $oExcelWindow
; Create instance 1 with 2 workbooks
Global $oExcel1 = _Excel_Open()                                      ; Connect to an already started Excel instance
Global $oWB1_1 = _Excel_BookNew($oExcel1)                            ; Create workbook 1
Global $oWB1_2 = _Excel_BookNew($oExcel1)                            ; Create workbook 2
; Create instance 2 with 1 workbook
Global $oExcel2 = _Excel_Open(Default, Default, Default, Default, True) ; Create new instance
Global $oWB2_1 = _Excel_BookNew($oExcel2)                            ; Create workbook 1
; Select cell in instance 2 workbook 1
$oWB2_1.ActiveSheet.Range("b3").select

Global $aWorkbooks = _Excel_BookList()                               ; Get a list of workbooks for all Excel instances
For $i = 0 to UBound($aWorkbooks) - 1
   $oExcelApp = $aWorkbooks[$i][0].Parent                            ; Application object for the selected workbook <== MODIFIED
   $oExcelWindow = $oExcelApp.ActiveWindow                           ; Get active Window for the selected Excel instance
   If IsObj($oExcelWindow) Then                                      ; Is there an active window for this Excel instance?
       $oExcelActiveCell = $oExcelWindow.ActiveCell                  ; Get the active cell of the window
       If @error = 0 Then
           MsgBox(0, "Result", "Address: " & $oExcelActiveCell.Address & @CRLF & _
                "Sheet Name: " & $oExcelApp.ActiveSheet.Name & @CRLF & _
                "Book Name: " & $oExcelApp.ActiveWorkbook.Name)      ; Displays the selected cell or the top left cell of a range
           ExitLoop                                                  ; If active cell found stop searching
       EndIf
   EndIf
Next

 


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2020-07-21 - Version 1.5.1.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2020-06-27 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (NEW 2020-06-27 - Version 1.3.2.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
PowerPoint (2017-06-06 - Version 0.0.5.0) - Download - General Help & Support
Excel - Example Scripts - Wiki
Word - Wiki
Task Scheduler (2019-12-03 - Version 1.5.1.0) - Download - General Help & Support - Wiki

Tutorials:
ADO - Wiki, WebDriver - Wiki

 

Share this post


Link to post
Share on other sites

water - very close.  Open a couple of instances manually with several workbooks in each.  Then run this code to generate some more and to open an existing file.

;Simulate issue - in real world user may have opened Excel and I have no knowledge of the object
$oExcel1 = _Excel_Open()        ;open first instance
_Excel_BookNew($oExcel1)        ;workbook with 3 sheets
_Excel_BookNew($oExcel1)        ;another workbook in same instance with 3 sheets

$oExcel2 = _Excel_Open(Default, Default, Default, Default, True)    ;open second instance
_Excel_BookNew($oExcel2)        ;workbook with 3 sheets
_Excel_BookNew($oExcel2)        ;another workbook in same instance with 3 sheets
_Excel_BookOpen($oExcel2, "C:\Program Files (x86)\AutoIt3\Examples\Helpfile\Extras\_Excel1.xls")    ;open an existing workbook that has

Now select any range in Tabelle3 to run your prior code.  It jumps to another instance and another book and reports that.  Here's a before and after shot.

Before showing selected cell in _Excel1.xls Tabelle3 C1 (If I select the second window it shows Book3 Sheet2 E3 active and rightmost Book2 C10.)

So with _Excel1.xls Tabelle3 C1 active I run your prior code and the second screen shot below is what I get.

image.png.f12c7ec5f6d09295efea61009571ad20.png

 

After

image.png.9cf84e7e356ce6e58daeea744929d690.png

 

So you can see it's selected to report the rightmost window rightmost Book2 C10 rather than the _Excel1.xls Tabelle3 C1.  Ugh.

 

Edited by ahha
Edited to show sheet tabs in rightmost window.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Langmeister
      Hi, I'm sure that this is a simple question regarding webdriver udf but my search on the forum did not result in the exact same scenario that I need. I will adapt it to my corporate needs but at first I want it to work with an example everybody can reproduce if needed.
      I navigate to https://www.daysoftheyear.com/ and want to find out what special day today is. Using the following Code returns the wanted text that today is 'shark awareness day' in the console but it is not pasted in notepad as it is not copied as it probably should be.
      #include "wd_core.au3" #include "wd_helper.au3" Local $sDesiredCapabilities, $sSession, $sID _WD_Option("Driver", "C:\Program Files (x86)\AutoIt3\chromedriver.exe") _WD_Option('Port', 9515) _WD_Option('DriverParams', '--log-path="' & @ScriptDir & '\chrome.log"') $sDesiredCapabilities = '{"capabilities": {"alwaysMatch": {"goog:chromeOptions": {"w3c": true }}}}' _WD_Startup() $sSession = _WD_CreateSession($sDesiredCapabilities) _WD_Navigate($sSession, "https://www.daysoftheyear.com/?timezone_offset=nan") _WD_LoadWait($sSession) Sleep(3000) Local $sElement = _WD_FindElement($sSession, $_WD_LOCATOR_ByXPath, "/html/body/div[2]/header/div/div[1]/div/div[2]/h3/a") _WD_ElementAction($sSession, $sElement, 'text') ClipGet() Run("notepad.exe") Sleep(500) Send("^v") Scite returns this, therefore the text has been found but the last mile to paste it to notepad or excel does not work for me.
      __WD_Get: URL=HTTP://127.0.0.1:9515/session/b72166b774d7fefb258b3721fc1d4306/element/657e6b5d-31a9-46a8-85c4-acb7f72bf659/text __WD_Get: StatusCode=200; $iResult = 0; $sResponseText={"value":"Shark Awareness Day"}... _WD_ElementAction: {"value":"Shark Awareness Day"}... Thanks in advance! 
       
    • By GOSM
      Hey,
      as part of a larger Programm I am trying to copy the values from one cell in an Excel file to another. The code I am using is the folowing.
       
      Local $oExcel = _Excel_Open() If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeCopy Example", "Error creating the Excel application object." & @CRLF & "@error = " & @error & ", @extended = " & @extended) _Excel_RangeCopyPaste($oExcel.ActiveSheet, "V4:W43", "X4", False, $xlPasteValues, Default, True) If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeCopy Example 4", "Error copying rows." & @CRLF & "@error = " & @error & ", @extended = " & @extended) MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeCopy Example 4", "2 Rows successfully pasted from the clipboard to row 1.") As I understood it the option $xlPasteValues should do the trick  but it is still copying the inserted formulas. I attached a test code and excel file.
      Thanks for the help Simon
      Copy Values Test.zip
    • By Chimp
      An "improper" "unusual" use of Excel
      the script allows the creation of artistic images by simply coloring the background of the individual cells of the Excel workbook.
      Although definitely useless ... I find it quite funny though
      have a good time
      many thanks to @UEZ , @Malkey , @water
      p.s.
      I think the pixelite + color to array process can be simplified, but I used the two ready-made functions provided by UEZ and Malkey. I thank both of you (credits  and links in listing)
      p.p.s.
      strange behaviour: while excell is filling cells, if you move the mouse pointer off the excell window, the fill speed increases ... (?)

       
      ; =============================================================================================================================== ; Name ..........: Excel in art ; Description ...: This script allows the creation of artistic images in Excel from a choosed picture. ; The picture is done by simply coloring the background of the individual cells of an Excel workbook. ; Although definitely useless, I find it quite funny though ; ; Return values .: An artistic image in an Excel workbook ; Author ........: Addiego Gianni (chimp) ; Modified ......: ; Remarks .......: Many thanks to UEZ, Malkey and Water ; Related .......: ; Link ..........: ; Example .......: ; =============================================================================================================================== #include <GDIPlus.au3> #include <Excel.au3> _PixelsToCells(50) ; <-- Parameter 50 is the cumber of horizontal Excel cells to be filled MsgBox(64, "All done", "Excel art is ready") Func _PixelsToCells($iHcells = 50) ; Check application object Local $oExcel = _Excel_Open() If Not IsObj($oExcel) Then MsgBox(16, "Error", "Sorry, You need to have 'Excel' intalled") ; Choose Image File Local $sPath = FileOpenDialog("Choose Image File", @ScriptDir & "", "Images (*.gif;*.png;*.jpg;*.bmp)| All (*.*)") If $sPath = '' Then Exit MsgBox(16, "Error", "Sorry, no image was chosen") ; Create a new Excel workbook $oWorkbook = _Excel_BookNew($oExcel, 1) ; initialize GDI+ _GDIPlus_Startup() Local $hBmp = _GDIPlus_BitmapCreateFromFile($sPath) Local $iWidth = _GDIPlus_ImageGetWidth($hBmp) ; get image width ; Local $iHeight = _GDIPlus_ImageGetHeight($hBmp) ; not needed here Local $iStep = $iWidth / $iHcells ; calculate the pixelation factor Local $hBitmap_new = _GDIPlus_PixelateBitmap($hBmp, $iStep) ; pixelate the image Local $aPixelColors = _FileImageToArray($hBitmap_new) ; get pixel colors ; reduce Excel columns width Local $xx = 1, $yy = 1 For $iCol = 0 To UBound($aPixelColors, 2) - 1 Step $iStep $oWorkbook.Sheets(1).Columns($xx).ColumnWidth = 1 $xx += 1 Next ; reduce Excel rows height For $iRow = 0 To UBound($aPixelColors) - 1 Step $iStep $oWorkbook.Sheets(1).Rows($yy).RowHeight = 9 $yy += 1 Next $xx = 1 $yy = 1 For $iRow = 0 To UBound($aPixelColors) - 1 Step $iStep For $iCol = 0 To UBound($aPixelColors, 2) - 1 Step $iStep $oWorkbook.Sheets(1).Range(_Excel_ColumnToLetter($xx) & $yy).Interior.Color = Number("0x" & $aPixelColors[$iRow][$iCol]) $xx += 1 Next $yy += 1 $xx = 1 Next _GDIPlus_BitmapDispose($hBmp) _GDIPlus_Shutdown() EndFunc ;==>_PixelsToCells ; by UEZ ; https://www.autoitscript.com/forum/topic/167707-imagepixelate/?do=findComment&comment=1227509 Func _GDIPlus_PixelateBitmap($hBitmap, $iPixelate, $bSmooth = 1) Local $iWidth = _GDIPlus_ImageGetWidth($hBitmap), $iHeight = _GDIPlus_ImageGetHeight($hBitmap) Local $iNewW = Round($iWidth / $iPixelate, 0), $iNewH = Round($iHeight / $iPixelate, 0) Local $hBitmap_scaled = _GDIPlus_BitmapCreateFromScan0($iNewW, $iNewH) Local $hCtxt = _GDIPlus_ImageGetGraphicsContext($hBitmap_scaled) Local $iInterpolation = 5 If $bSmooth Then $iInterpolation = $GDIP_INTERPOLATIONMODE_BILINEAR _GDIPlus_GraphicsSetInterpolationMode($hCtxt, $iInterpolation) _GDIPlus_GraphicsDrawImageRect($hCtxt, $hBitmap, 0, 0, $iNewW, $iNewH) _GDIPlus_GraphicsDispose($hCtxt) Local $hBitmap_pixelated = _GDIPlus_BitmapCreateFromScan0($iWidth, $iHeight) $hCtxt = _GDIPlus_ImageGetGraphicsContext($hBitmap_pixelated) _GDIPlus_GraphicsSetInterpolationMode($hCtxt, $GDIP_INTERPOLATIONMODE_NearestNeighbor) _GDIPlus_GraphicsDrawImageRectRect($hCtxt, $hBitmap_scaled, 0, 0, $iNewW, $iNewH, -$iPixelate, -$iPixelate, $iWidth + 2 * $iPixelate, $iHeight + 2 * $iPixelate) _GDIPlus_GraphicsDispose($hCtxt) Return $hBitmap_pixelated EndFunc ;==>_GDIPlus_PixelateBitmap ; by Malkey ; https://www.autoitscript.com/forum/topic/112540-is-there-a-function-for-reading-images-into-2d-arrays/?do=findComment&comment=788472 Func _FileImageToArray($hImage) Local $Reslt, $stride, $format, $Scan0, $iIW, $iIH ; , $hImage Local $v_Buffer, $width, $height ; _GDIPlus_Startup() ; $hImage = _GDIPlus_ImageLoadFromFile($sFileName) $iIW = _GDIPlus_ImageGetWidth($hImage) $iIH = _GDIPlus_ImageGetHeight($hImage) ProgressOn("Progress Bar", "Filling a " & $iIW & " x " & $iIH & " size array.", "0 percent") $Reslt = _GDIPlus_BitmapLockBits($hImage, 0, 0, $iIW, $iIH, $GDIP_ILMREAD, $GDIP_PXF32ARGB) ;Get the returned values of _GDIPlus_BitmapLockBits () $width = DllStructGetData($Reslt, "width") $height = DllStructGetData($Reslt, "height") $stride = DllStructGetData($Reslt, "stride") $format = DllStructGetData($Reslt, "format") $Scan0 = DllStructGetData($Reslt, "Scan0") Local $aArray[$height][$width] For $j = 0 To $iIH - 1 For $i = 0 To $iIW - 1 $v_Buffer = DllStructCreate("dword", $Scan0 + ($j * $stride) + ($i * 4)) $aArray[$j][$i] = StringRegExpReplace(Hex(DllStructGetData($v_Buffer, 1), 6), "(.{2})(.{2})(.{2})", "\3\2\1") ; To RGB format Next ProgressSet(Int(100 * $j / ($iIH)), Int(100 * $j / ($iIH)) & " percent") Next _GDIPlus_BitmapUnlockBits($hImage, $Reslt) ProgressOff() _GDIPlus_ImageDispose($hImage) Return $aArray EndFunc ;==>_FileImageToArray  
    • By Zaoka
      Hi guys
      Need little help with filtering.
      I'm trying to filter specific weeks from power pivot table using this code recorded with Excel VBA :
       
      #include <Excel.au3> Global $oExcel = _Excel_Open() Global $oWorkbook = _Excel_BookOpen($oExcel, "C:\Users\....\Orders.xlsb") $oWorkbook.PivotTables("PivotTable1").PivotFields( _ "[Report 2].[Week].[Week]").VisibleItemsList = Array( _ "[Report 2].[Week].&[10]", "[Report 2].[Week].&[11]", _ "[Report 2].[Week].&[12]", "[Report 2].[Week].&[13]", _ "[Report 2].[Week].&[14]", "[Report 2].[Week].&[15]") But get error
      error: Array(): undefined function. Not sure how to resolve this.
    • By Rajat231
      I am trying this code to create multiple workbooks eachone  shall be copy of one worksheet from a workbook having multiple sheets ( keeing the name same)
      SavingWorksheets.au3
×
×
  • Create New...