Wow! This works great. The advantage of not always having to specify the sheet when using Named Ranges never occurred to me.
As for this line: c As Range I would have expected to see something like 'c As Cell', but I guess in Excel terms a cell is a range (albeit a very small one)? Thanks much. On Aug 26, 5:22 am, Dave Bonallack <davebonall...@hotmail.com> wrote: > Hi Kurt, > > If your named ranges are really called WS1Data, WS2Data, WS3Data, WS4Data, > then your code can be reduced to just a few lines. > > Sub NoData() > Dim i As Integer, c As Range > ' Cycle thru each Named Range > For i = 1 To 4 > ' Cycle thru each cell within the Named Range > For Each c In Range("WS" & i & "Data") > If IsNull(c) Or c = "" Then c = "no data" > Next c > Next i > End Sub > > When you use Named Ranges, most of the time you don't need to state the sheet > name. In your case, we have 4, so we need only cycle through them, and ignore > the sheet names. This is one BIG advantage of using Named Ranges. > > Note that the 'i' from the 'For i = 1 to 4' thingy has also been used to help > construct the name of each range. Range("WS" & i & "Data") > > By the way, note that I've used 'c' as my variable to represent each cell in > the range. It's generally bad practice to use a word like 'cell' as a > variable, since VBA has already allotted it a special meaning. VBA might pout > if you use its favourite words for other things. > > Hope this helps. > > Regards - Dave. > > > Date: Wed, 25 Aug 2010 12:14:21 -0700 > > Subject: $$Excel-Macros$$ Code to enter value in multiple worksheets > > From: heislerk...@gmail.com > > To: excel-macros@googlegroups.com > > > I have 4 worksheets (WS1, WS2, etc.) with cells that get populated > > with data from a linked source sheet. In Column B on each worksheet is > > a dynamic range of cells (on WS1 it's "WS1Data," WS2 it's "WS2Data," > > etc.) When rows in the range are blank, I'd like to insert the word > > "no data." > > > I can do this with the following code, which manually selects the > > sheet, the cells, and the range, and then inserts "no data" in blank > > cells: > > > Sub InsertData() > > > ' Insert "no data" in empty cells > > > ' Do Worksheet 1 > > > Sheets("WS1").Select > > Cells.Select ' is this line needed? > > Range("WS1Data").Activate > > > For Each Cell In Range("WS1Data") > > If IsNull(Cell.Value) Or Cell.Value = "" Then > > Cell.Value = "no data" > > End If > > Next > > > ' Do Worksheet 2 > > > Sheets("WS2").Select > > Cells.Select > > Range("WS2Data").Activate > > > For Each Cell In Range("WS2Data") > > If IsNull(Cell.Value) Or Cell.Value = "" Then > > Cell.Value = "no data" > > End If > > Next > > > [etc. for the remaining two worksheets] > > > End Sub > > > # > > > As you can see, the code sets the focus to the corresponding worksheet > > as it goes through the code. Is there a more efficient way to perform > > this procedure, perhaps one that's transparent to the user? If not, > > I'd be interested in suggestions for making the code more economical. > > For instance, I suspect I don't need to rewrite the For ... Each > > segment four times, and instead just plug in a range value. Just not > > sure how. > > > Thank you. > > > -- > > ---------------------------------------------------------------------------------- > > Some important links for excel users: > > 1. Follow us on TWITTER for tips tricks and links > > :http://twitter.com/exceldailytip > > 2. Join our LinkedIN group @http://www.linkedin.com/groups?gid=1871310 > > 3. Excel tutorials athttp://www.excel-macros.blogspot.com > > 4. Learn VBA Macros athttp://www.quickvba.blogspot.com > > 5. Excel Tips and Tricks athttp://exceldailytip.blogspot.com > > > To post to this group, send email to excel-macros@googlegroups.com > > > <><><><><><><><><><><><><><><><><><><><><><> > > HELP US GROW !! > > > We reach over 7000 subscribers worldwide and receive many nice notes about > > the learning and support from the group.Let friends and co-workers know > > they can subscribe to group > > athttp://groups.google.com/group/excel-macros/subscribe -- ---------------------------------------------------------------------------------- Some important links for excel users: 1. Follow us on TWITTER for tips tricks and links : http://twitter.com/exceldailytip 2. Join our LinkedIN group @ http://www.linkedin.com/groups?gid=1871310 3. Excel tutorials at http://www.excel-macros.blogspot.com 4. Learn VBA Macros at http://www.quickvba.blogspot.com 5. Excel Tips and Tricks at http://exceldailytip.blogspot.com To post to this group, send email to excel-macros@googlegroups.com <><><><><><><><><><><><><><><><><><><><><><> HELP US GROW !! We reach over 7000 subscribers worldwide and receive many nice notes about the learning and support from the group.Let friends and co-workers know they can subscribe to group at http://groups.google.com/group/excel-macros/subscribe