Topo_Chico Posted January 15, 2020 Share Posted January 15, 2020 Hello Everyone, I have been stuck trying to figure out how to copy rows from one Workbook to another Workbook. My though process was in the for loop to read each row and write that same row to the new Workbook. Unfortunately I have not had any success. Any guide or help would great appreciated. Thank you #include <Array.au3> #include <Excel.au3> #include <ExcelConstants.au3> #include <MsgBoxConstants.au3> ;########################################################################################################################### $csvFile1 = "C:\temp\testFile1.csv" $csvFile2 = "C:\temp\testFile2.csv" Const $sType = $xlCSVMSDOS ;Set the type as CSV ;########################################################################################################################### Local $oExcel = _Excel_Open() ; Create application object and create a new workbook Local $oWorkbook1 = _Excel_BookOpen($oExcel, $csvFile1) ;Open TEST File1 Local $oWorkbook2 = _Excel_BookOpen($oExcel, $csvFile2) ;Open TEST File2 ;########################################################################################################################### Local $oTotalRow = $oWorkbook1.ActiveSheet.UsedRange.Rows.Count ;########################################################################################################################### For $i = 1 To $oTotalRow Step +1 ;_Excel_RangeRead($oWorkbook1, Default, ("A" & $i & ":" & "F" & $i)) _Excel_RangeCopyPaste($oWorkbook1.WorkSheets(1), Default, ("A" & $i & ":" & "F" & $i)) _Excel_RangeWrite($oWorkbook2, "testFile2", ("A" & $i & ":" & "F" & $i), ("A" & $i & ":" & "F" & $i)) Next _Excel_BookSaveAs($oWorkbook2, $oWorkbook2, $xlCSVMSDOS) ;########################################################################################################################### $oWorkbook1.Close $oWorkbook2.Close ;########################################################################################################################### _Excel_Close($oExcel) ;########################################################################################################################### Link to comment Share on other sites More sharing options...
Subz Posted January 15, 2020 Share Posted January 15, 2020 Here is how to do line by line, although you could actually just use RangeRead to read "A:F" and just paste the entire column in the second workbook. #include <Array.au3> #include <Excel.au3> #include <ExcelConstants.au3> #include <MsgBoxConstants.au3> ;########################################################################################################################### $csvFile1 = "C:\temp\testFile1.csv" $csvFile2 = "C:\temp\testFile2.csv" Const $sType = $xlCSVMSDOS ;Set the type as CSV ;########################################################################################################################### Local $oExcel = _Excel_Open() ; Create application object and create a new workbook Local $oWorkbook1 = _Excel_BookOpen($oExcel, $csvFile1) ;Open TEST File1 Local $oWorkbook2 = _Excel_BookOpen($oExcel, $csvFile2) ;Open TEST File2 ;########################################################################################################################### Local $oRange, $oTotalRow = $oWorkbook1.ActiveSheet.UsedRange.Rows.Count ;########################################################################################################################### For $i = 1 To $oTotalRow Step +1 $oRange = _Excel_RangeRead($oWorkbook1, Default, "A" & $i & ":" & "F" & $i) _Excel_RangeWrite($oWorkbook2, Default, $oRange, "A" & $i) Next _Excel_BookSaveAs($oWorkbook2, $oWorkbook2, $xlCSVMSDOS) ;########################################################################################################################### $oWorkbook1.Close $oWorkbook2.Close ;########################################################################################################################### _Excel_Close($oExcel) ;########################################################################################################################### Topo_Chico 1 Link to comment Share on other sites More sharing options...
Topo_Chico Posted January 15, 2020 Author Share Posted January 15, 2020 @Subz Thank you so much for your help. It works amazing. If you have the time to add another Notch to it, I am trying to append the Workbook with even more content. To summaries it, Workbook1 will copy over the rows to Workbook3 which you have shown me how to do. I am struggling to visualizes how I am able to copy the rows of Workbook2 to the bottom of Workbook3. Than you again Subz I owe you a coffee expandcollapse popup#include <Array.au3> #include <Excel.au3> #include <ExcelConstants.au3> #include <MsgBoxConstants.au3> ;########################################################################################################################### $csvFile1 = "C:\temp\testFile1.csv" $csvFile2 = "C:\temp\testFile2.csv" $csvFile3 = "C:\temp\testFile3.csv" ;########################################################################################################################### Local $oExcel = _Excel_Open() ; Create application object and create a new workbook Local $oWorkbook1 = _Excel_BookOpen($oExcel, $csvFile1) ;Open TEST File1 Local $oWorkbook2 = _Excel_BookOpen($oExcel, $csvFile2) ;Open TEST File2 Local $oWorkbook3 = _Excel_BookOpen($oExcel, $csvFile3) ;Open TEST File3 ;########################################################################################################################### Local $oRange1 = $oWorkbook1.ActiveSheet.UsedRange.Rows.Count Local $oTotalRowFile1 = $oWorkbook1.ActiveSheet.UsedRange.Rows.Count ;########################################################################################################################### Local $oRange2 = $oWorkbook2.ActiveSheet.UsedRange.Rows.Count Local $oTotalRowFile2 = $oWorkbook2.ActiveSheet.UsedRange.Rows.Count ;########################################################################################################################### For $i = 1 To $oTotalRowFile1 Step +1 $oRange = _Excel_RangeRead($oWorkbook1, Default, "A" & $i & ":" & "F" & $i) _Excel_RangeWrite($oWorkbook3, Default, $oRange, "A" & $i & ":" & "F" & $i) Next _Excel_BookSave($oWorkbook3) ;########################################################################################################################### For $i = 1 To $oTotalRowFile2 Step +1 $oRange2 = _Excel_RangeRead($oWorkbook2, Default, "A" & $i & ":" & "F" & $i) ;^^^^^^^^^^Read from the beginning of the other file^^^^^^^^^^ For $j = $oTotalRowFile1 To ($oTotalRowFile1 + $oTotalRowFile2) Step +1 ;^^^^ End of the other file ^^^^End of this file _Excel_RangeWrite($oWorkbook3, Default, $oRange2, "A" & $j & ":" & "F" & $j) Next Next ;########################################################################################################################### _Excel_BookSave($oWorkbook3) ;########################################################################################################################### $oWorkbook1.Close $oWorkbook2.Close $oWorkbook3.Close ;########################################################################################################################### _Excel_Close($oExcel) ;########################################################################################################################### Link to comment Share on other sites More sharing options...
Topo_Chico Posted January 15, 2020 Author Share Posted January 15, 2020 @Subz Thanks again for everything. I think I figured it out. I just added the static number to the counter and it works. Sweet and simple. Thanks again. I meant it when I said the next coffee of me expandcollapse popup#include <Array.au3> #include <Excel.au3> #include <ExcelConstants.au3> #include <MsgBoxConstants.au3> ;########################################################################################################################### $csvFile1 = "C:\temp\testFile1.csv" $csvFile2 = "C:\temp\testFile2.csv" $csvFile3 = "C:\temp\testFile3.csv" ;########################################################################################################################### Const $sType = $xlCSVMSDOS ;Set the type as CSV ;########################################################################################################################### Local $oExcel = _Excel_Open() ; Create application object and create a new workbook Local $oWorkbook1 = _Excel_BookOpen($oExcel, $csvFile1) ;Open TEST File1 Local $oWorkbook2 = _Excel_BookOpen($oExcel, $csvFile2) ;Open TEST File2 Local $oWorkbook3 = _Excel_BookOpen($oExcel, $csvFile3) ;Open TEST File3 ;########################################################################################################################### Local $oRange1 = $oWorkbook1.ActiveSheet.UsedRange.Rows.Count Local $oTotalRowFile1 = $oWorkbook1.ActiveSheet.UsedRange.Rows.Count ;########################################################################################################################### Local $oRange2 = $oWorkbook2.ActiveSheet.UsedRange.Rows.Count Local $oTotalRowFile2 = $oWorkbook2.ActiveSheet.UsedRange.Rows.Count ;########################################################################################################################### For $i = 1 To ($oTotalRowFile1) Step +1 $oRange = _Excel_RangeRead($oWorkbook1, Default, "A" & $i & ":" & "F" & $i) _Excel_RangeWrite($oWorkbook3, Default, $oRange, "A" & $i & ":" & "F" & $i) Next ;########################################################################################################################### $oWorkbook1.Close _Excel_BookSave($oWorkbook3) ;########################################################################################################################### For $i = 1 To ($oTotalRowFile2 +1) Step +1 $oRange2 = _Excel_RangeRead($oWorkbook2, Default, "A" & $i & ":" & "F" & $i) _Excel_RangeWrite($oWorkbook3, Default, $oRange2, "A" & (1 + $i + $oTotalRowFile2) & ":" & "F" & (1 + $i + $oTotalRowFile2)) Next ;########################################################################################################################### $oWorkbook2.Close _Excel_BookSave($oWorkbook3) ;########################################################################################################################### ;$oWorkbook3.Close ;########################################################################################################################### _Excel_Close($oExcel) ;########################################################################################################################### 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