Home |
Search |
Today's Posts |
#4
![]() |
|||
|
|||
![]()
I was noodling around with this some more and the macro you provided is very
close to what I thought would work (it does work within Excel). You have no idea how helpful seeing your code piece was in wrapping mine up!! Thanks! For anyone else who might want to do this from VFP I built a VFP Function that I pass the file to open and the other relevant info (that was retrieved from a separate data file) and then loop through the list. A simplified version is below: *----------------------------------------------- loExcel1 = CreateObject("Excel.Application") loExcel1.Workbooks.Add lcCurBook = loExcel1.ActiveWorkbook.Name lcXlsFile = "C:\Temp\dunsdups.xls" lcSheetname = JUSTSTEM("C:\Temp\dunsdups.xls") lcNewTabName = "Duplicate Duns IDs" *-oExcel1.Visible = .f. && for Production loExcel1.Visible = .t. && for debugging =AddXlsToFile("loExcel1",lcXlsFile,lcCurBook, lcSheetName, lcNewTabName) loExcel1.Quit RETURN *------------------------------------ FUNCTION AddXlsToFile PARAMETER foObj, fcFile, fcBook, fcSheet, fcTab WITH &foObj .Workbooks.Open(fcFile) .Sheets(fcSheet).Select .Sheets(fcSheet).Copy(loExcel1.Workbooks(lcCurBook ).Sheets(1)) .Windows(lcCurBook).Activate .Sheets(fcSheet).Select .Sheets(fcSheet).Name = lcNewTabName .Windows(fcSheet + ".xls").Activate .ActiveWindow.Close ENDWITH RETURN *----------------------------------------- Again, thanks for your input on this. I did trip over almost the same thing, but your detailed example put things much clearer!! -Bill "Otto Moehrbach" wrote: Bill Maybe something like this is what you want. HTH Otto This macro will copy the first sheet of each workbook into the workbook where the code is. The sheet will be named as the workbook name. Sub TestFile3() Dim basebook As Workbook Dim mybook As Workbook Dim sourceRange As Range Dim destrange As Range Dim FNames As String Dim MyPath As String Dim SaveDriveDir As String SaveDriveDir = CurDir MyPath = "C:\Data" ChDrive MyPath ChDir MyPath FNames = Dir("*.xls") If Len(FNames) = 0 Then MsgBox "No files in the Directory" ChDrive SaveDriveDir ChDir SaveDriveDir Exit Sub End If Application.ScreenUpdating = False Set basebook = ThisWorkbook Do While FNames < "" Set mybook = Workbooks.Open(FNames) mybook.Worksheets(1).Copy after:= _ basebook.Sheets(basebook.Sheets.Count) On Error Resume Next ActiveSheet.Name = mybook.Name On Error GoTo 0 ' You can use this if you want to copy only the values ' With ActiveSheet.UsedRange ' .Value = .Value ' End With mybook.Close False FNames = Dir() Loop ChDrive SaveDriveDir ChDir SaveDriveDir Application.ScreenUpdating = True End Sub "Bill Coupe" wrote in message ... I know there has to be a simple way to do this, but I can't seem to find it. What I want to do is to open an existing Excel file, 'into' the current (ActiveSheet) of an already open file. The way I found to do it was to use the 'Data\Import External Data' option. My ultimate goal here is to 'gather up' a set of recently generated spreadsheets (each containing only one worksheet) into one Excel file contaiing all the individual files from within a VFP application. But having to add a 'Connection' to native data just doesn't seem right to me... I'd love to hear anyone's thoughts on this. Thanks - Bill |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Excel 2003 FAILS, but Excel 2000 SUCCEEDS ??? | Excel Discussion (Misc queries) | |||
unable to open Excel file by double clicks | Excel Discussion (Misc queries) | |||
Cannot open a file that Excel says is open | Excel Discussion (Misc queries) | |||
When I select "Open" from the "File" menu in Excel, I get only a . | Excel Discussion (Misc queries) | |||
Open a file in excel from a link in eplorer | Excel Discussion (Misc queries) |