ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   help with array (https://www.excelbanter.com/excel-programming/447469-help-array.html)

bobh

help with array
 
Hi All,

In Excel 2003 I'm trying to make a variable an array and store the
values entered by a user using an inputbox and I'm failing badly.....
below is what I tried but it does not work so how do I do that?
thanks
bobh.

'input looks like this -- 3,8,19,21,36
Dim PRange() As Integer
PRange() = InputBox("Enter up to 5 page nbr's to print, seperated
by a comma( , )", "Enter Page Nbrs")

Ben McClave

help with array
 
I don't use 2003, but this worked for me in 2010:

Dim PRange() As Variant
PRange() = Application.InputBox("Enter up to 5 page nbr's to print, " & _
"using this format:" & vbCr & vbCr & _
"{Number_1, Number_2, etc.}", "Enter Page Nbrs", "{3,8,19,21,36}", , , , , 64)
'Below line prints inputbox results to Sheet1 row 1
Sheet1.Range("A1:E1").Value = PRange

Ben

GS[_2_]

help with array
 
Try...

Dim vPageNums As Variant, sPageNums As String, n As Long

'Get the values...
sPageNums = InputBox("Enter up to 5 page nbr's to print, seperated
by a comma(ie: 1,3,5,7,9)", "Enter Page Nbrs")

'Create the array...
vpageNums = Split(sPageNums, ",")

'Do stuff...
For n = LBound(vPageNums) To UBound(vPageNums)
Debug.Print vPageNums(n)
Next 'n

--
Garry

Free usenet access at http://www.eternal-september.org
ClassicVB Users Regroup!
comp.lang.basic.visual.misc
microsoft.public.vb.general.discussion



bobh

help with array
 
On Oct 23, 3:24*pm, Ben McClave wrote:
I don't use 2003, but this worked for me in 2010:

Dim PRange() As Variant
* *PRange() = Application.InputBox("Enter up to 5 page nbr's to print, " & _
* * "using this format:" & vbCr & vbCr & _
* * "{Number_1, Number_2, etc.}", "Enter Page Nbrs", "{3,8,19,21,36}", , , , , 64)
'Below line prints inputbox results to Sheet1 row 1
* * Sheet1.Range("A1:E1").Value = PRange

Ben


thanks for your reply, it works :) , looking to resolve having to
type the { } in the inputbox

bobh

help with array
 
On Oct 23, 6:09*pm, GS wrote:
Try...

* Dim vPageNums As Variant, sPageNums As String, n As Long

* 'Get the values...
* sPageNums = InputBox("Enter up to 5 page nbr's to print, seperated
by a comma(ie: 1,3,5,7,9)", "Enter Page Nbrs")

* 'Create the array...
* vpageNums = Split(sPageNums, ",")

* 'Do stuff...
* For n = LBound(vPageNums) To UBound(vPageNums)
* * Debug.Print vPageNums(n)
* Next 'n

--
Garry

Free usenet access athttp://www.eternal-september.org
ClassicVB Users Regroup!
* * comp.lang.basic.visual.misc
* * microsoft.public.vb.general.discussion


Thanks, it works great :) it is what I was hoping to find. Here's
what I ended up with in case anyone else is looking for something
like this


Sub PrintPages()
'
Dim vPgNums As Variant, sPgNums As String, n As Long

'Get the values from the user
sPgNums = InputBox("Enter up to 5 page nbr's to print, seperated by
a comma(ie: 1,5,9,14,21)", "Enter Page Nbrs")

'check to be sure the user entered something
If Len(sPgNums & "") = 0 Then
Exit Sub
Else
'create an array of the values entered
vPgNums = Split(sPgNums, ",")

'get each page nbr and print it
For n = LBound(vPgNums) To UBound(vPgNums)
ActiveWindow.SelectedSheets.PrintOut From:=vPgNums(n),
To:=vPgNums(n), Copies:=1
Next 'n
End If

End Sub

GS[_2_]

help with array
 
Here's my (commented) approach to your solution:

Sub PrintPages()
'
Dim vPgNums As Variant, sPgNums As String, n As Long

'Get the values from the user
sPgNums = InputBox("Enter up to 5 page nbr's to print, seperated by
a comma(ie: 1,5,9,14,21)", "Enter Page Nbrs")

''''''''''''''''''''''''''''''''''''''''''''
'This block isn't necessary because printout
'will only happen if user entered page numbers.

'**Also, I don't get why you add an empty
'string to the variable before testing its length**
' If Len(sPgNums & "") = 0 Then
' Exit Sub
' Else
''''''''''''''''''''''''''''''''''''''''''''
'Make sure user didn't cancel
If Len(sPgNums) 0 Then
'create an array of the values entered
vPgNums = Split(sPgNums, ",")

'get each page nbr and print it
For n = LBound(vPgNums) To UBound(vPgNums)
ActiveWindow.SelectedSheets.PrintOut From:=vPgNums(n),
To:=vPgNums(n), Copies:=1
Next 'n
End If

End Sub


Note that you could also pass sPgNums as the 'Pages' parameter

--
Garry

Free usenet access at http://www.eternal-september.org
ClassicVB Users Regroup!
comp.lang.basic.visual.misc
microsoft.public.vb.general.discussion




All times are GMT +1. The time now is 01:32 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com