Jump to content
blqk

Help with search and copy text in Excel

Recommended Posts

blqk

Hello all, I am a begginer in AutoiT and i need some advice if possible.

Here is what i want to accomplish - I have two colums with text column "A" and column "B". I want to be able to search for a partial match in column "A" and if there is a match, copy the corespoding value from column "B" to the clipboard. It is not necessary to be in Excel, it may be a txt or ini file, but there must be a way so I can sepparate the two columns, so probably Excel is the best method. I think i can use _Excel_RangeFind to find the value in column "A", but I am not sure how to copy the corespoding value from column "B" in the clipboard. Below is the example for Functio _Excel_RangeFind that i can use to find the needed value. Any advice will be appreciated

 

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

; Create application object and open an example workbook
Local $oAppl = _Excel_Open()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeFind Example", "Error creating the Excel application object." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $oWorkbook = _Excel_BookOpen($oAppl, @ScriptDir & "\Extras\_Excel1.xls")
If @error Then
    MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeFind Example", "Error opening workbook '" & @ScriptDir & "\Extras\_Excel1.xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    _Excel_Close($oAppl)
    Exit
EndIf

; *****************************************************************************
; Find all occurrences of value "37000" (partial match)
; *****************************************************************************
Local $aResult = _Excel_RangeFind($oWorkbook, "37000")
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeFind Example 1", "Error searching the range." & @CRLF & "@error = " & @error & ", @extended = " & @extended)

 

Share this post


Link to post
Share on other sites
water

$aResult[$i][2] contains the address of the cell with the searched value.

$oWorkbook.Activesheet.Range($aResult[$i][2]).Offset(0,1).Value
returns the value of the cell one column right of the found cell.


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (2018-06-01 - Version 1.4.9.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2018-09-01 - Version 1.3.4.0) - Download - General Help & Support - Example Scripts - 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
 
Tutorials:

ADO - Wiki

 

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

×