myk3 Posted January 1, 2011 Share Posted January 1, 2011 (edited) I can not find this anywhere.. I have this code $file = FileOpen(@ScriptDir & "\test.txt", 1) $oExcel = _ExcelBookOpen(@ScriptDir & "\Master List.xls",0) $oExcel.sheets("Non-Compliant").Select Do $oExcel.cells.Find($NewArray[$1]).select $oExcel.ActiveCell.entirerow.copy FileWriteLine($file,Clipget()) $1 += 1 Until $1 = UBound($NewArray) _ExcelBookClose($oExcel) Everything works however if the array variable is not found it copies the previous selection into the "test.txt file Is there a way to deselect or an if statement to use in conjunction with the vba code? I tried $file = FileOpen(@ScriptDir & "\test.txt", 1) $oExcel = _ExcelBookOpen(@ScriptDir & "\Master List.xls",0) $oExcel.sheets("Non-Compliant").Select Do if $oExcel.cells.Find($NewArray[$1]).select = 0 Then $oExcel.ActiveCell.entirerow.copy FileWriteLine($file,Clipget()) endif $1 += 1 Until $1 = UBound($NewArray) _ExcelBookClose($oExcel) which did not work Edited January 1, 2011 by myk3 Link to comment Share on other sites More sharing options...
myk3 Posted January 1, 2011 Author Share Posted January 1, 2011 I think I got something that will work but don't know how to pass a macro to excel from autoit *********** EXCEL MACRO *********** Sub UnSelectCurrentArea() Dim Area As Range Dim RR As Range For Each Area In Selection.Areas If Application.Intersect(Area, ActiveCell) Is Nothing Then If RR Is Nothing Then Set RR = Area Else Set RR = Application.Union(RR, Area) End If End If Next Area If Not RR Is Nothing Then RR.Select End If End Sub Link to comment Share on other sites More sharing options...
hench Posted January 1, 2011 Share Posted January 1, 2011 just googled : "excel object run macro", I believe you will fill up your need up there. hench Link to comment Share on other sites More sharing options...
myk3 Posted January 1, 2011 Author Share Posted January 1, 2011 (edited) I got it working with a simple if statement in autoit... but for some odd reason when I open the excel doc it always opens to 1 cell and copies it.. odd expandcollapse popup#include <Excel.au3> #include <Array.au3> #include <file.au3> ;~ ;************************** ;~ ;read array from text file ;~ ;************************** FileChangeDir (@scriptdir ) If FileExists ("array.txt")<>1 then MsgBox(0, "ERROR", "Array text file not found ") Exit EndIf Dim $NewArray FileOpen("array.txt",0) If Not _FileReadToArray("array.txt",$NewArray) Then MsgBox(4096,"Error", " Error reading text file to $NewArray error:" & @error) EndIf FileClose("array.txt") $1=1 $write = "" ;****************************************************************************** ; Open excel query each item in the array and post it to a document to print ;****************************************************************************** $file = FileOpen(@ScriptDir & "\test.txt", 2) $oExcel = _ExcelBookOpen(@ScriptDir & "\Master List.xls",0) $oExcel.sheets("Non-Compliant").Select Do $oExcel.cells.Find($NewArray[$1]).activate $oExcel.ActiveCell.entirerow.copy if ClipGet() = $write Then sleep(100) else $write = clipget() FileWriteLine($file,$write) endif $1 += 1 Until $1 = UBound($NewArray) _ExcelBookClose($oExcel) When Opening the excel doc I had a macro that was selecting that line.. it is fixed now Edited January 2, 2011 by myk3 Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now