Prompt to enter a macro name?
I guess there's a difference in the way we define macros.
I would include all functions and all subroutines in the macro category--whether
or not the function or subroutine has arguments passed to it. And I'd even
those old 123 macros and xlm macros as macros, too.
If you're trying to make a distinction between subs/procedures that show up in
the tools|macro|macros dialog, then even though subs with arguments don't show
up, they still are available.
For instance, I had this in a General module:
Option Explicit
Sub testme(myStr As String)
MsgBox myStr
End Sub
And I hit alt-F8 and typed this:
'testme "hi"'
And I saw a msgbox showing me "hi".
=======
The reason I mentioned functions is that (in my opinion), the biggest (only???)
difference between functions and subroutines is that one returns something--a
value, an object, or something.
And functions can be called from the tools|macro|macros dialog, too. It just
takes some typing.
Rick Rothstein wrote:
I didn't mean to imply subroutines cannot have arguments... what I said
macros are subroutines that do not any arguments; in other words,
subroutines that have arguments cannot be a macro... they are simply
subroutines with arguments. I'm a little unclear why you added the
distinction between functions and subroutines... the OP didn't mention
anything about functions... he posted an event procedure and asked why it
didn't show up in the macro's dialog box.
--
Rick (MVP - Excel)
"Dave Peterson" wrote in message
...
Just a correction (to a fast finger response???)...
Subroutines can have arguments. But functions return something--and subs
don't.
Rick Rothstein wrote:
The code you posted is not a macro (macros are Sub's that do not have any
arguments)... what you posted is know as event code and is meant to be
run
automatically by Excel when the triggering event occurs (in the case of
your
code, when a value changes on the worksheet whose worksheet code window
it
is in. Exactly what were you expecting this code to do for you?
--
Rick (MVP - Excel)
"andreashermle" wrote in message
...
Dear Experts:
Whenever I run this macro a dialog field pops up asking me to enter a
macro name. Why is this so?
Sub Worksheet_Change(ByVal Target As Excel.Range)
If Len(Range("E4")) < 32 And Range("E4") < "" Then
ActiveSheet.Name = Range("E4").Value
End If
End Sub
--
Dave Peterson
--
Dave Peterson
|