![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()
![]() |

|
| Microsoft office error all errors related to Microsoft office error |
![]() |
|
Open Excel via vba and Sort A specific Sheet
|
LinkBack | Thread Tools | Display Modes |
|
|
#1 (permalink) |
|
Fixed Error!
Posts: 4,202
Join Date: Mar 2007
Rep Power: 6
IM:
|
Excel 2003 I want to open an excel workbook, Select a ashett and sort it by Column C I do not need to see excel do this. I can't get this to work Public Sub sortExcel() Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Open("C:\DM2007\Export.xls") Set xlSheet = xlBook.Sheets("gVendExport") xlSheet.Cells.Select xlSheet.Selection.Sort Key1:=Range("C2"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal xlSheet.Range("A1").Select Set xlSheet = Nothing xlBook.Save xlBook.Close Set xlBook = Nothing xlApp.Quit Set xlApp = Nothing End Sub |
|
|
|
|
|
|
|
|
#2 (permalink) |
|
Fixed Error!
Posts: 4,202
Join Date: Mar 2007
Rep Power: 6
IM:
|
If a user has one spreadsheet open, and you run your automation on HIS machine, or underneath him in a term session, then excel shouldn't close. It will stay active in the task manager. In my opinion, the way Access and Excel works/doesn't work together leaves a LOT to be desired. Any files you plan to use with Access should be placed in a central location...a dedicated directory. Opening them with your application should be a scheduled event. If it is your intention to grab data from a spreadsheet that might be in use already, there's code all over EE to help you determine if the spreadsheet is already opened to preclude the effort. It's just my experience, if you're going to grab data from a spreadsheet, 1) Check to see if Excel is already running 2) Check to see if the File you're using is open 3) Once you get a free file, open it, import it, then close it. 4) if excel was already running, then just close YOUR doc. Otherwise, app.quit 5) Now that the data is in Access...do what you want with it. That includes sorting. I'm not really sure why you would want to use access to sort a column in Excel, but you obviously have a reason. If it can be done in Excel, then leave the macro in Excel. You can open a spreadsheet and execute it's macros without trying to manipulate selects and cell ranges. Let excel do the work. If this is not possible, then follow the steps above. Excel is quirky at best. It leaves .Tmp files open, it's impossible to determine who has it open at any given time, and it doesn't share. To answer your last question....Excel can eat up memory and lock up your system sure. You can try upping your page swap size using the Windows Memory configuration tools....but chances are, if that's happening, you've got something else going on causing it. J |
|
|
|
![]() |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | |
| Display Modes | |
|
|