LinkBack Thread Tools Search this Thread Display Modes
Prev Previous Post   Next Post Next
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 31
Default Reply to thread 'Syntax error on looping through each cell

Interesting question :). It took a moment

When your code first runs, "sh" is not set to a worksheet, it is
"nothing"

so, the statement "sh.name ="new" then sh.delete" will not do anthing

And the IF statement will always run the next statement as you have
"on error resume next" set on (a bad idea :) )

So, it will create a new worksheet. I suspect you have many
worksheets in your workbook. So the loop will create many worksheets,
as sh never gets set to anything.

Hopefully this gives you the clue to solve.

If you want to delete a sheet named "new" then do this:

On error resume next
application.displayalerts = false
Worksheets("new").delete
application.displayalerts = true
On error goto 0

Lots of other ways:

on error resume next
set sh = worksheets("new")
if not sh is nothing then
application.displayalerts = false
sh.delete
application.displayalerts = false
end if
on error goto 0

Robert Flanagan
Add-ins.com LLC
http://www.add-ins.com
Productivity add-ins and downloadable books on VB macros for Excel



On Jun 5, 9:34*am, E-on wrote:
Sub Copytom()
Dim rng As Range, i As Long, ws As Worksheet, sh As Worksheet

For Each ws In Worksheets
On Error Resume Next
If sh.Name = "New" Then sh.Delete
If sh.Name < "New" Then
Set sh = Sheets.Add
sh.Name = "New"
End If
For i = 3 To 100
If ws.Cells(i, 5).Value = " Stockwell Motors" Then
ws.Range("F" & i & ":G" & i).Copy
Worksheets("New").Range("A" & *_Rows.Count).End(xlUp).Offset(1, 0)
End If
Next
Next
End Sub

This is my second post on this forum. I had found a solution for my
first post and hopefully to get for a second post too.

I am really mystified by the above code. Let me explain line by line. It
is not my code, got it from someone.

For Each ws In Worksheets to loop through each sheet

If sh.Name = "New" Then sh.Delete if sheet name new does exist
delete it and it does not create a new one
If sh.Name < "New" Then
Set sh = Sheets.Add
sh.Name = "New"
For i = 3 To 100 loop through from row 3 to row 100
If ws.Cells(i, 5).Value = " Stockwell Motors" Then
in each worksheet of each row of column E, look for Stockwell motors
And the last line is to copy column F and G of row which has Stockwell
motors in to the new created sheet.

I understand all lines, but lost as to why the code creates 97 blank
sheets instead of coping rows in to the new sheet. What is wrong with
the code? Why the code is not doing what is supposed to do. Please
help.

Basically, I have many sheets. They all have the same number of rows and
column numbers, hence I set up rng as Set rng = ws.Range("A3:R100").
Where I am stuck is when I try to loop through each cell in column "E"
of ws.Range("A3:R100"). If any cell in each sheet of column "E" has a
name Stockwell Motors", then copy, but I am stuck. i am sure these
lines are wrong .

--
E-on


 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Why, when I post a thread, can I not reply to a response using thereply button? ChipButtyMan Excel Programming 1 October 25th 08 12:16 AM
Can't open the link to a reply to a thread I posted RkyMtn New Users to Excel 1 September 12th 08 08:10 AM
Syntax for looping through rows and columns in Excel Curious[_2_] Excel Programming 6 August 7th 07 09:55 PM
what is 'too many different cell formats' reply? tommy Excel Discussion (Misc queries) 4 December 17th 04 06:23 AM
syntax for relative cell change and looping BwanaP Excel Programming 1 September 27th 03 03:36 PM


All times are GMT +1. The time now is 12:30 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"