i found the problem. it is becuase the source workbook file format is .xlsb and once i changed it to .xls then it worked.
all of my source workbooks are originally xlsb is there anyway that the code will work in xlsb source workbook?
i found the problem. it is becuase the source workbook file format is .xlsb and once i changed it to .xls then it worked.
all of my source workbooks are originally xlsb is there anyway that the code will work in xlsb source workbook?
i also checked with other file formats it does not work in xlsm as well. it only works in .xls seems like the code only functions in old version of excel only.
IT's working fine for me in the binary format (xlsb).
I've made a small modification. try this
Code:Sub SplitWorkbook() Dim colLetter As String, SavePath As String Dim lastValue As String Dim wb As Workbook Dim lng As Long Dim currentRow As Long colLetter = "P" SavePath = "" 'Indicate the path to save If SavePath = "" Then SavePath = ThisWorkbook.Path 'Sort the workbook. With ThisWorkbook.Worksheets(1) .Sort.SortFields.Add Key:=.Range(colLetter & ":" & colLetter), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With .Sort .SetRange .Parent.UsedRange.Cells .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With For lng = 2 To .Range(colLetter & .Rows.Count).End(xlUp).Row If .Cells(lng, colLetter).Value = "" Then Exit For lastValue = .Cells(lng, colLetter).Value .Cells.AutoFilter field:=.Cells(lng, colLetter).Column, Criteria1:=lastValue lng = .Cells(.Rows.Count, colLetter).End(xlUp).Row Set wb = Application.Workbooks.Add(xlWorksheet) .Rows(1 & ":" & lng).Copy wb.Sheets(1).Cells(Rows.Count, 1).End(xlUp) wb.SaveAs SavePath & "\" & lastValue, 50 wb.Close Next .AutoFilterMode = False End With End Sub
A dream is not something you see when you are asleep, but something you strive for when you are awake.
It's usually a bad idea to say that something can't be done.
The difference between dream and aim, is that one requires soundless sleep to see and the other requires sleepless efforts to achieve
Join us at Facebook
i use excel 2010
https://www.youtube.com/channel/UCnxwq2aGJRbjOo_MO54oaHA
https://eileenslounge.com/viewtopic.php?p=326972#p326972
https://eileenslounge.com/viewtopic.php?p=326853#p326853
https://eileenslounge.com/viewtopic.php?p=326446#p326446
https://eileenslounge.com/viewtopic.php?f=27&t=41986
https://eileenslounge.com/viewtopic.php?p=325610#p325610
https://eileenslounge.com/viewtopic.php?p=325609#p325609
https://eileenslounge.com/viewtopic.php?p=325605#p325605
https://eileenslounge.com/viewtopic.php?p=325548#p325548
https://eileenslounge.com/viewtopic.php?p=316441#p316441
https://eileenslounge.com/viewtopic.php?p=324736#p324736
https://eileenslounge.com/viewtopic.php?p=324990#p324990
https://eileenslounge.com/viewtopic.php?f=27&t=41937&p=325485#p325485
https://eileenslounge.com/viewtopic.php?p=325609#p325609
https://eileenslounge.com/viewtopic.php?p=325610#p325610
https://www.youtube.com/channel/UCnxwq2aGJRbjOo_MO54oaHA
Last edited by DocAElstein; 05-25-2025 at 01:34 AM.
It's more to do with your available system resources, than anything else I think. Can you try the same macro on a more powerful computer?
A dream is not something you see when you are asleep, but something you strive for when you are awake.
It's usually a bad idea to say that something can't be done.
The difference between dream and aim, is that one requires soundless sleep to see and the other requires sleepless efforts to achieve
Join us at Facebook
the modified code you provided, worked perfectly.
now only one issue that all the generated workbooks have the default worksheet name as "sheet1" i want the worksheet name to be the same as the source worksheet which is "GL_Details" for all those generated workbooks the worksheet name should be "GL_Details"
can you please help on this part of the code?
The reason why the modified code worked is because I reduced the range of cells to just the used range of the sheet. So it's your available resources that's cause the trouble. Having said that, I should have only used the used range instead of the entire cells.
To add a name to the sheet, just add the below line, right after the workbook is added
Code:wb.Sheets(1).Name = "NameOfSheetHere"
A dream is not something you see when you are asleep, but something you strive for when you are awake.
It's usually a bad idea to say that something can't be done.
The difference between dream and aim, is that one requires soundless sleep to see and the other requires sleepless efforts to achieve
Join us at Facebook
thank you very much. i do not even know your name. but i i guess that our messages have crossed before in mrexcel forums.
so, please give pm me your paypal ID so that i send you 10 bucks.
also looking forward for solution to my outlook project in the other thread.
https://www.youtube.com/channel/UCnxwq2aGJRbjOo_MO54oaHA
https://www.youtube.com/channel/UCnxwq2aGJRbjOo_MO54oaHA
Last edited by DocAElstein; 06-12-2023 at 01:04 PM.
Bookmarks