Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I have a following few lines of VBA codes. With input n=6, why is that when I
test dn it DOESN'T work, but test d(n+0) it works, which gives j=4. Thanks. n = InputBox("n") j = 0 Do While j < n j = j + 1 d = (n * j) / 3 If d (n + 0) Then Exit Do MsgBox ("d= ") & d & (" n= ") & n 'monitoring Loop MsgBox ("j= ") & j 'output |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I have the impression that if N is a Variant then N contains a string, not a
number, since Inputbox always return a string. The expression N+0 will be forced to be a number, since N is "casted" to a number. This can happen only if the user enters strings having only characters among 0...9. If N was an integer then assigning the return value of Inputbox would solve your problem, but in this case you'd better handle the error in case the user enters alphabetic data. Excerpt from the Help file: "Displays a prompt in a dialog box, waits for the user to input text or click a button, and returns a String containing the contents of the text box." I hope this helps you. -- Stefano Gatto "zhj23" wrote: I have a following few lines of VBA codes. With input n=6, why is that when I test dn it DOESN'T work, but test d(n+0) it works, which gives j=4. Thanks. n = InputBox("n") j = 0 Do While j < n j = j + 1 d = (n * j) / 3 If d (n + 0) Then Exit Do MsgBox ("d= ") & d & (" n= ") & n 'monitoring Loop MsgBox ("j= ") & j 'output |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
That would be true if he used
Application.InputBox (the Excel Inputbox), but the OP is using the VBA Inputbox which doesn't have that argument. Perhaps you were suggesting that the OP use the Application.Inputbox rather than the VBA Inputbox so he could use that argument. -- Regards, Tom Ogilvy "David McRitchie" wrote in message ... Hi "zip23", You should include the type, which is the last operand of InputBox see your VBE HELP file. -- 1 for type requires a number expression.InputBox(prompt, title , default, xPos, yPos, helpfile, type) Use of Option Explicit at the top of your module would have required you to dimension n which could be Dim n as Long You might also consider entering a default value, if there is one to simplify usage. Suggest in the VBE Tools, Options, Editor [x] Require Variable Definition http://www.mvps.org/dmcritchie/excel/inputbox.htm --- HTH, David McRitchie, Microsoft MVP - Excel [site changed Nov. 2001] My Excel Pages: http://www.mvps.org/dmcritchie/excel/excel.htm Search Page: http://www.mvps.org/dmcritchie/excel/search.htm "Stefano Gatto" wrote in message ... I have the impression that if N is a Variant then N contains a string, not a number, since Inputbox always return a string. The expression N+0 will be forced to be a number, since N is "casted" to a number. This can happen only if the user enters strings having only characters among 0...9. If N was an integer then assigning the return value of Inputbox would solve your problem, but in this case you'd better handle the error in case the user enters alphabetic data. Excerpt from the Help file: "Displays a prompt in a dialog box, waits for the user to input text or click a button, and returns a String containing the contents of the text box." I hope this helps you. -- Stefano Gatto "zhj23" wrote: I have a following few lines of VBA codes. With input n=6, why is that when I test dn it DOESN'T work, but test d(n+0) it works, which gives j=4. Thanks. n = InputBox("n") j = 0 Do While j < n j = j + 1 d = (n * j) / 3 If d (n + 0) Then Exit Do MsgBox ("d= ") & d & (" n= ") & n 'monitoring Loop MsgBox ("j= ") & j 'output |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi Tom,
I guess that explains why I had trouble with it, before creating a page. Now that I see the difference, why would anyone want to use the Inputbox Function instead of the Inputbox Method Also I notice the Function described as a textbox, and the Method as a dialog box. They both look the same and have a titlebar that can be changed. -- HTH, David McRitchie, Microsoft MVP - Excel [site changed Nov. 2001] My Excel Pages: http://www.mvps.org/dmcritchie/excel/excel.htm Search Page: http://www.mvps.org/dmcritchie/excel/search.htm "Tom Ogilvy" wrote in message ... That would be true if he used Application.InputBox (the Excel Inputbox), but the OP is using the VBA Inputbox which doesn't have that argument. Perhaps you were suggesting that the OP use the Application.Inputbox rather than the VBA Inputbox so he could use that argument. -- Regards, Tom Ogilvy "David McRitchie" wrote in message ... Hi "zip23", You should include the type, which is the last operand of InputBox see your VBE HELP file. -- 1 for type requires a number expression.InputBox(prompt, title , default, xPos, yPos, helpfile, type) Use of Option Explicit at the top of your module would have required you to dimension n which could be Dim n as Long You might also consider entering a default value, if there is one to simplify usage. Suggest in the VBE Tools, Options, Editor [x] Require Variable Definition http://www.mvps.org/dmcritchie/excel/inputbox.htm --- HTH, David McRitchie, Microsoft MVP - Excel [site changed Nov. 2001] My Excel Pages: http://www.mvps.org/dmcritchie/excel/excel.htm Search Page: http://www.mvps.org/dmcritchie/excel/search.htm "Stefano Gatto" wrote in message ... I have the impression that if N is a Variant then N contains a string, not a number, since Inputbox always return a string. The expression N+0 will be forced to be a number, since N is "casted" to a number. This can happen only if the user enters strings having only characters among 0...9. If N was an integer then assigning the return value of Inputbox would solve your problem, but in this case you'd better handle the error in case the user enters alphabetic data. Excerpt from the Help file: "Displays a prompt in a dialog box, waits for the user to input text or click a button, and returns a String containing the contents of the text box." I hope this helps you. -- Stefano Gatto "zhj23" wrote: I have a following few lines of VBA codes. With input n=6, why is that when I test dn it DOESN'T work, but test d(n+0) it works, which gives j=4. Thanks. n = InputBox("n") j = 0 Do While j < n j = j + 1 d = (n * j) / 3 If d (n + 0) Then Exit Do MsgBox ("d= ") & d & (" n= ") & n 'monitoring Loop MsgBox ("j= ") & j 'output |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
IF statement inside a SUMIF statement.... or alternative method | Excel Worksheet Functions | |||
Reconcile Bank statement & Credit card statement & accounting data | Excel Worksheet Functions | |||
Embedding an OR statement in an IF statement efficiently | Excel Discussion (Misc queries) | |||
Can an If statement answer an If statement? | Excel Discussion (Misc queries) | |||
appending and IF statement to an existing IF statement | Excel Worksheet Functions |