Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Adam1 Chicago
 
Posts: n/a
Default Eliminating "Selects"

I am a VBA novice and posted some code like:

Sheets("Input").select
Range("A1").select
ActiveCell.FormulaR1C1 = "=IF(R2C20,""Yes"",""No"")"
ActiveCell.Offset(1,0).Select
ActiveCell.Value = 1

The groans were almost audible over the Internet! While this code gets the
job done, I get the distinct impression that this is the slowest and
clunkiest way to do things. How else do I indicate the sheets and cell I
want to work in without selecting it?

Thanks
  #2   Report Post  
Otto Moehrbach
 
Posts: n/a
Default

Sub DoIt()
With Sheets("Input")
.Range("A1").FormulaR1C1 = "=IF(R2C20,""Yes"",""No"")"
.Range("A1").Offset(1) = 1
End With
End Sub

HTH Otto
"Adam1 Chicago" wrote in message
...
I am a VBA novice and posted some code like:

Sheets("Input").select
Range("A1").select
ActiveCell.FormulaR1C1 = "=IF(R2C20,""Yes"",""No"")"
ActiveCell.Offset(1,0).Select
ActiveCell.Value = 1

The groans were almost audible over the Internet! While this code gets
the
job done, I get the distinct impression that this is the slowest and
clunkiest way to do things. How else do I indicate the sheets and cell I
want to work in without selecting it?

Thanks



  #3   Report Post  
Earl Kiosterud
 
Posts: n/a
Default

Adam,

While not the most efficient, there's nothing wrong with using selects to do
stuff to a worksheet in a macro. And they're more fun to watch, too, if you
want to impress your friends there at work. Otto's code is the direct
approach, runs faster, and is more professional. There are some cases
where code is made TOO compact, and is not easy to modify later, or to
debug.

Here are some general suggestions:

move data sheet 1 to Sheet2, with cell formatting:
Sheets("Sheet1").Range("A1").Cut Destination:=Sheets("Sheet2").Range("A1")

Copy data to Sheet2, with cell formatting
Sheets("Sheet1").Range("A2").Copy Destination:=Sheets("Sheet2").Range("A2")

Without formatting:
Sheets("Sheet2").Range("A3") = Sheets("Sheet1").Range("A3")
--
Earl Kiosterud
mvpearl omitthisword at verizon period net
-------------------------------------------

"Adam1 Chicago" wrote in message
...
I am a VBA novice and posted some code like:

Sheets("Input").select
Range("A1").select
ActiveCell.FormulaR1C1 = "=IF(R2C20,""Yes"",""No"")"
ActiveCell.Offset(1,0).Select
ActiveCell.Value = 1

The groans were almost audible over the Internet! While this code gets
the
job done, I get the distinct impression that this is the slowest and
clunkiest way to do things. How else do I indicate the sheets and cell I
want to work in without selecting it?

Thanks



Reply
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
mouse selects area Todd Excel Worksheet Functions 3 January 21st 05 09:20 PM
Eliminating Single Quote Before Equals Sign Steveinneed Excel Worksheet Functions 1 December 14th 04 03:43 AM


All times are GMT +1. The time now is 11:28 PM.

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

About Us

"It's about Microsoft Excel"