Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I have some VBA code which is activated when anything is input or paste
into the D column of a spreadsheet. It takes out any spaces or dashe that are in the cells. My problem is that it only works for cell 1-9999. If anything is input in cell 10,000+, the macro isn't run. Here's my code: Sub AccountID() Dim lLastRow As Long Dim Sh1 As Worksheet, rng As Range Set Sh1 = ThisWorkbook.Worksheets("Form") lLastRow = Sh1.Cells(Rows.Count, "D").End(xlUp).Row Set rng = Sh1.Range("D2", "D2" & lLastRow) rng.Replace _ What:=" ", Replacement:="", _ searchorder:=xlByRows, MatchCase:=True rng.Replace _ What:="-", Replacement:="", _ searchorder:=xlByRows, MatchCase:=True rng.NumberFormat = "General" Set Sh1 = Nothing Set rng = Nothing End Sub What would be limiting this to 9999 lines? TIA! sup19 -- Message posted from http://www.ExcelForum.com |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Shouldn't
Set rng = Sh1.Range("D2", "D2" & lLastRow) be Set rng = Sh1.Range("D2", "D" & lLastRow) or Set rng = Sh1.Range("D2:D" & lLastRow) -- Regards, Tom Ogilvy "sup191 " wrote in message ... I have some VBA code which is activated when anything is input or pasted into the D column of a spreadsheet. It takes out any spaces or dashes that are in the cells. My problem is that it only works for cells 1-9999. If anything is input in cell 10,000+, the macro isn't run. Here's my code: Sub AccountID() Dim lLastRow As Long Dim Sh1 As Worksheet, rng As Range Set Sh1 = ThisWorkbook.Worksheets("Form") lLastRow = Sh1.Cells(Rows.Count, "D").End(xlUp).Row Set rng = Sh1.Range("D2", "D2" & lLastRow) rng.Replace _ What:=" ", Replacement:="", _ searchorder:=xlByRows, MatchCase:=True rng.Replace _ What:="-", Replacement:="", _ searchorder:=xlByRows, MatchCase:=True rng.NumberFormat = "General" Set Sh1 = Nothing Set rng = Nothing End Sub What would be limiting this to 9999 lines? TIA! sup191 --- Message posted from http://www.ExcelForum.com/ |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Change
Set rng = Sh1.Range("D2", "D2" & lLastRow) ' to Set rng = Sh1.Range("D2", "D" & lLastRow) -- Cordially, Chip Pearson Microsoft MVP - Excel Pearson Software Consulting, LLC www.cpearson.com "sup191 " wrote in message ... I have some VBA code which is activated when anything is input or pasted into the D column of a spreadsheet. It takes out any spaces or dashes that are in the cells. My problem is that it only works for cells 1-9999. If anything is input in cell 10,000+, the macro isn't run. Here's my code: Sub AccountID() Dim lLastRow As Long Dim Sh1 As Worksheet, rng As Range Set Sh1 = ThisWorkbook.Worksheets("Form") lLastRow = Sh1.Cells(Rows.Count, "D").End(xlUp).Row Set rng = Sh1.Range("D2", "D2" & lLastRow) rng.Replace _ What:=" ", Replacement:="", _ searchorder:=xlByRows, MatchCase:=True rng.Replace _ What:="-", Replacement:="", _ searchorder:=xlByRows, MatchCase:=True rng.NumberFormat = "General" Set Sh1 = Nothing Set rng = Nothing End Sub What would be limiting this to 9999 lines? TIA! sup191 --- Message posted from http://www.ExcelForum.com/ |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Thanks guys!! The "D2" to "D" fixed it. I needed to omit cell D1 as i
was the header to the column and I didn't want it to be effected by th macro. Now I see why it should just be "D". My eyes are opened a little wider... :) sup19 -- Message posted from http://www.ExcelForum.com |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
VBA Code Not Working | Excel Discussion (Misc queries) | |||
Adding Rows offsets to working rows across two worksheets | Setting up and Configuration of Excel | |||
add time greater than 9999:56 | Excel Worksheet Functions | |||
why this code not working | Excel Programming | |||
why this code not working | Excel Programming |