![]() |
If Statement
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 |
If Statement
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 |
If Statement
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 |
If Statement
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 |
All times are GMT +1. The time now is 09:52 AM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com